From 785e242ab8b4807368b58fb7efb772552f3541ab Mon Sep 17 00:00:00 2001 From: turbolent Date: Mon, 8 Jul 2024 16:57:00 +0000 Subject: [PATCH 01/17] v1.0.0-preview.36 --- npm-packages/cadence-parser/package.json | 2 +- version.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/npm-packages/cadence-parser/package.json b/npm-packages/cadence-parser/package.json index 7c50f3d962..b10e4c6df2 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.35", + "version": "1.0.0-preview.36", "description": "The Cadence parser", "homepage": "https://github.com/onflow/cadence", "repository": { diff --git a/version.go b/version.go index 8e5e7e2a08..01ead8c3d0 100644 --- a/version.go +++ b/version.go @@ -21,4 +21,4 @@ package cadence -const Version = "v1.0.0-preview.35" +const Version = "v1.0.0-preview.36" From c952163d873791ac533404fe0f5d438e2d14e40f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Mon, 8 Jul 2024 10:51:19 -0700 Subject: [PATCH 02/17] add some more tests for string functions --- runtime/tests/interpreter/interpreter_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/runtime/tests/interpreter/interpreter_test.go b/runtime/tests/interpreter/interpreter_test.go index 51630906ce..5e014f5c67 100644 --- a/runtime/tests/interpreter/interpreter_test.go +++ b/runtime/tests/interpreter/interpreter_test.go @@ -1125,6 +1125,8 @@ func TestInterpretStringSlicing(t *testing.T) { {"cafe\\u{301}ba\\u{308}be", 4, 8, "ba\u0308be", nil}, {"cafe\\u{301}ba\\u{308}be", 3, 4, "e\u0301", nil}, {"cafe\\u{301}ba\\u{308}be", 5, 6, "a\u0308", nil}, + {"tamil \\u{BA8}\\u{BBF} (ni)", 0, 7, "tamil \u0BA8\u0BBF", nil}, + {"tamil \\u{BA8}\\u{BBF} (ni)", 7, 12, " (ni)", nil}, } runTest := func(test test) { @@ -5355,6 +5357,7 @@ func TestInterpretStringLength(t *testing.T) { inter := parseCheckAndInterpret(t, ` let x = "cafe\u{301}".length let y = x + let z = "\u{1F3F3}\u{FE0F}\u{200D}\u{1F308}".length `) AssertValuesEqual( @@ -5369,6 +5372,12 @@ func TestInterpretStringLength(t *testing.T) { interpreter.NewUnmeteredIntValueFromInt64(4), inter.Globals.Get("y").GetValue(inter), ) + AssertValuesEqual( + t, + inter, + interpreter.NewUnmeteredIntValueFromInt64(1), + inter.Globals.Get("z").GetValue(inter), + ) } func TestInterpretStructureFunctionBindingInside(t *testing.T) { From b48e8e24a1bff57458798e16553569f0b032a9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Mon, 8 Jul 2024 13:29:41 -0700 Subject: [PATCH 03/17] add a String.contains function --- runtime/interpreter/value.go | 53 ++++++++++++ runtime/sema/string_type.go | 24 ++++++ runtime/tests/checker/string_test.go | 45 +++++++++++ runtime/tests/interpreter/interpreter_test.go | 5 +- runtime/tests/interpreter/string_test.go | 81 +++++++++++++++++++ 5 files changed, 207 insertions(+), 1 deletion(-) diff --git a/runtime/interpreter/value.go b/runtime/interpreter/value.go index 33740d0b27..210f711e95 100644 --- a/runtime/interpreter/value.go +++ b/runtime/interpreter/value.go @@ -1379,6 +1379,21 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location }, ) + case sema.StringTypeContainsFunctionName: + return NewBoundHostFunctionValue( + interpreter, + v, + sema.StringTypeContainsFunctionType, + func(invocation Invocation) Value { + other, ok := invocation.Arguments[0].(*StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + return v.Contains(invocation.Interpreter, other) + }, + ) + case sema.StringTypeDecodeHexFunctionName: return NewBoundHostFunctionValue( interpreter, @@ -1688,6 +1703,44 @@ func (v *StringValue) ForEach( } } +func (v *StringValue) Contains(inter *Interpreter, other *StringValue) BoolValue { + + // Meter computation as if the string was iterated. + // This is a conservative over-estimation. + inter.ReportComputation(common.ComputationKindLoop, uint(len(v.Str)*len(other.Str))) + + v.prepareGraphemes() + + for { + start, _ := v.graphemes.Positions() + remainder := v.Str[start:] + if strings.HasPrefix(remainder, other.Str) { + + // Check the end is a grapheme cluster boundary + expectedEnd := start + len(other.Str) + for { + _, end := v.graphemes.Positions() + if end == expectedEnd { + return TrueValue + } else if end > expectedEnd { + return FalseValue + } + + if !v.graphemes.Next() { + break + } + } + } + + if !v.graphemes.Next() { + break + } + } + + return FalseValue + +} + type StringValueIterator struct { graphemes *uniseg.Graphemes } diff --git a/runtime/sema/string_type.go b/runtime/sema/string_type.go index 70bb4122fd..5ce6c2f1fb 100644 --- a/runtime/sema/string_type.go +++ b/runtime/sema/string_type.go @@ -123,6 +123,12 @@ func init() { StringTypeReplaceAllFunctionType, StringTypeReplaceAllFunctionDocString, ), + NewUnmeteredPublicFunctionMember( + t, + StringTypeContainsFunctionName, + StringTypeContainsFunctionType, + stringTypeContainsFunctionDocString, + ), }) } } @@ -170,6 +176,24 @@ 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 ` +var StringTypeContainsFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "other", + TypeAnnotation: StringTypeAnnotation, + }, + }, + BoolTypeAnnotation, +) + +const StringTypeContainsFunctionName = "contains" + +const stringTypeContainsFunctionDocString = ` +Returns true if this string contains the given other string as a substring. +` + const StringTypeReplaceAllFunctionName = "replaceAll" const StringTypeReplaceAllFunctionDocString = ` Returns a new string after replacing all the occurrences of parameter ` + "`of` with the parameter `with`" + `. diff --git a/runtime/tests/checker/string_test.go b/runtime/tests/checker/string_test.go index 1291a66441..756b6c9ec7 100644 --- a/runtime/tests/checker/string_test.go +++ b/runtime/tests/checker/string_test.go @@ -534,3 +534,48 @@ func TestCheckStringReplaceAllTypeMissingArgumentLabelWith(t *testing.T) { assert.IsType(t, &sema.MissingArgumentLabelError{}, errs[0]) } + +func TestCheckStringContains(t *testing.T) { + + t.Parallel() + + t.Run("missing argument", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Bool = a.contains() + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InsufficientArgumentsError{}, errs[0]) + }) + + t.Run("wrong argument type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Bool = a.contains(1) + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }) + + t.Run("valid", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Bool = a.contains("abc") + `) + + require.NoError(t, err) + }) +} diff --git a/runtime/tests/interpreter/interpreter_test.go b/runtime/tests/interpreter/interpreter_test.go index 51630906ce..c84faf769a 100644 --- a/runtime/tests/interpreter/interpreter_test.go +++ b/runtime/tests/interpreter/interpreter_test.go @@ -1128,7 +1128,10 @@ func TestInterpretStringSlicing(t *testing.T) { } runTest := func(test test) { - t.Run("", func(t *testing.T) { + + name := fmt.Sprintf("%s, %d, %d", test.str, test.from, test.to) + + t.Run(name, func(t *testing.T) { t.Parallel() diff --git a/runtime/tests/interpreter/string_test.go b/runtime/tests/interpreter/string_test.go index 5a770cb674..b342e14ec9 100644 --- a/runtime/tests/interpreter/string_test.go +++ b/runtime/tests/interpreter/string_test.go @@ -643,3 +643,84 @@ func TestInterpretStringReplaceAll(t *testing.T) { testCase(t, "testEmptyOf", interpreter.NewUnmeteredStringValue("1a1b1c1")) testCase(t, "testNoMatch", interpreter.NewUnmeteredStringValue("pqrS;asdf")) } + +func TestInterpretStringContains(t *testing.T) { + + t.Parallel() + + type test struct { + str string + subStr string + result bool + } + + tests := []test{ + {"abcdef", "", true}, + {"abcdef", "a", true}, + {"abcdef", "ab", true}, + {"abcdef", "ac", false}, + {"abcdef", "b", true}, + {"abcdef", "bc", true}, + {"abcdef", "bcd", true}, + {"abcdef", "c", true}, + {"abcdef", "cd", true}, + {"abcdef", "cdef", true}, + {"abcdef", "cdefg", false}, + {"abcdef", "abcdef", true}, + {"abcdef", "abcdefg", false}, + + // U+1F476 U+1F3FB is πŸ‘ΆπŸ» + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", " \\u{1F476}", false}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{1F3FB}", false}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", " \\u{1F476}\\u{1F3FB}", true}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{1F476}\\u{1F3FB}", true}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{1F476}\\u{1F3FB} ", true}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{D}", false}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{A}", false}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", " ascii ", true}, + + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") contains πŸ‡ͺπŸ‡Έ("ES") + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1EA}\\u{1F1F8}", true}, + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") contains πŸ‡ͺπŸ‡ͺ ("EE") + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1EA}\\u{1F1EA}", true}, + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") does NOT contain πŸ‡ΈπŸ‡ͺ ("SE") + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1F8}\\u{1F1EA}", false}, + // neither prefix nor suffix of codepoints are valid + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}", false}, + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", false}, + } + + runTest := func(test test) { + + name := fmt.Sprintf("%s, %s", test.str, test.subStr) + + t.Run(name, func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, + fmt.Sprintf( + ` + fun test(): Bool { + let s = "%s" + return s.contains("%s") + } + `, + test.str, + test.subStr, + ), + ) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + require.IsType(t, interpreter.BoolValue(true), value) + actual := value.(interpreter.BoolValue) + require.Equal(t, test.result, bool(actual)) + }) + } + + for _, test := range tests { + runTest(test) + } +} From 1fcafe0f7bdba56e719f7a5dfd70a90cb3fcb165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Mon, 8 Jul 2024 14:47:17 -0700 Subject: [PATCH 04/17] optimize String.contains, add helpers for grapheme cluster boundaries --- runtime/interpreter/value.go | 70 ++++++++++++++++++-------- runtime/interpreter/value_test.go | 82 +++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+), 20 deletions(-) diff --git a/runtime/interpreter/value.go b/runtime/interpreter/value.go index 210f711e95..3b7580bc23 100644 --- a/runtime/interpreter/value.go +++ b/runtime/interpreter/value.go @@ -1703,6 +1703,48 @@ func (v *StringValue) ForEach( } } +func (v *StringValue) IsBoundaryStart(start int) bool { + v.prepareGraphemes() + return v.isGraphemeBoundaryStartPrepared(start) +} + +func (v *StringValue) isGraphemeBoundaryStartPrepared(start int) bool { + + for { + boundaryStart, _ := v.graphemes.Positions() + if start == boundaryStart { + return true + } else if boundaryStart > start { + return false + } + + if !v.graphemes.Next() { + return false + } + } +} + +func (v *StringValue) IsBoundaryEnd(end int) bool { + v.prepareGraphemes() + return v.isGraphemeBoundaryEndPrepared(end) +} + +func (v *StringValue) isGraphemeBoundaryEndPrepared(end int) bool { + + for { + _, boundaryEnd := v.graphemes.Positions() + if end == boundaryEnd { + return true + } else if boundaryEnd > end { + return false + } + + if !v.graphemes.Next() { + return false + } + } +} + func (v *StringValue) Contains(inter *Interpreter, other *StringValue) BoolValue { // Meter computation as if the string was iterated. @@ -1711,29 +1753,17 @@ func (v *StringValue) Contains(inter *Interpreter, other *StringValue) BoolValue v.prepareGraphemes() - for { - start, _ := v.graphemes.Positions() - remainder := v.Str[start:] - if strings.HasPrefix(remainder, other.Str) { + for start := 0; start < len(v.Str); start++ { - // Check the end is a grapheme cluster boundary - expectedEnd := start + len(other.Str) - for { - _, end := v.graphemes.Positions() - if end == expectedEnd { - return TrueValue - } else if end > expectedEnd { - return FalseValue - } - - if !v.graphemes.Next() { - break - } - } + start = strings.Index(v.Str[start:], other.Str) + if start < 0 { + break } - if !v.graphemes.Next() { - break + if v.isGraphemeBoundaryStartPrepared(start) && + v.isGraphemeBoundaryEndPrepared(start+len(other.Str)) { + + return TrueValue } } diff --git a/runtime/interpreter/value_test.go b/runtime/interpreter/value_test.go index d2f9937364..1a0f82c6fe 100644 --- a/runtime/interpreter/value_test.go +++ b/runtime/interpreter/value_test.go @@ -4391,3 +4391,85 @@ func TestValue_ConformsToStaticType(t *testing.T) { }) } + +func TestStringIsBoundaryStart(t *testing.T) { + + t.Parallel() + + test := func(s string, i int, expected bool) { + + name := fmt.Sprintf("%s, %d", s, i) + + t.Run(name, func(t *testing.T) { + str := NewUnmeteredStringValue(s) + assert.Equal(t, expected, str.IsBoundaryStart(i)) + }) + } + + test("", 0, true) + test("a", 0, true) + test("a", 1, false) + test("ab", 1, true) + + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") + flagESflagEE := "\U0001F1EA\U0001F1F8\U0001F1EA\U0001F1EA" + require.Len(t, flagESflagEE, 16) + test(flagESflagEE, 0, true) + test(flagESflagEE, 1, false) + test(flagESflagEE, 2, false) + test(flagESflagEE, 3, false) + test(flagESflagEE, 4, false) + test(flagESflagEE, 5, false) + test(flagESflagEE, 6, false) + test(flagESflagEE, 7, false) + + test(flagESflagEE, 8, true) + test(flagESflagEE, 9, false) + test(flagESflagEE, 10, false) + test(flagESflagEE, 11, false) + test(flagESflagEE, 12, false) + test(flagESflagEE, 13, false) + test(flagESflagEE, 14, false) + test(flagESflagEE, 15, false) +} + +func TestStringIsBoundaryEnd(t *testing.T) { + + t.Parallel() + + test := func(s string, i int, expected bool) { + + name := fmt.Sprintf("%s, %d", s, i) + + t.Run(name, func(t *testing.T) { + str := NewUnmeteredStringValue(s) + assert.Equal(t, expected, str.IsBoundaryEnd(i)) + }) + } + + test("", 0, true) + test("a", 0, true) + test("a", 1, true) + test("ab", 1, true) + + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") + flagESflagEE := "\U0001F1EA\U0001F1F8\U0001F1EA\U0001F1EA" + require.Len(t, flagESflagEE, 16) + test(flagESflagEE, 0, true) + test(flagESflagEE, 1, false) + test(flagESflagEE, 2, false) + test(flagESflagEE, 3, false) + test(flagESflagEE, 4, false) + test(flagESflagEE, 5, false) + test(flagESflagEE, 6, false) + test(flagESflagEE, 7, false) + + test(flagESflagEE, 8, true) + test(flagESflagEE, 9, false) + test(flagESflagEE, 10, false) + test(flagESflagEE, 11, false) + test(flagESflagEE, 12, false) + test(flagESflagEE, 13, false) + test(flagESflagEE, 14, false) + test(flagESflagEE, 15, false) +} From a369c56db01e06114ccc05143dcebb677fb80ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Tue, 9 Jul 2024 08:40:48 -0700 Subject: [PATCH 05/17] add String.index and String.count, fix grapheme boundary functions --- runtime/interpreter/value.go | 182 ++++++++++++++++++++--- runtime/interpreter/value_test.go | 19 ++- runtime/sema/string_type.go | 52 +++++++ runtime/tests/checker/string_test.go | 118 +++++++++++++++ runtime/tests/interpreter/string_test.go | 144 ++++++++++++++++++ 5 files changed, 486 insertions(+), 29 deletions(-) diff --git a/runtime/interpreter/value.go b/runtime/interpreter/value.go index 3b7580bc23..f813b80e6a 100644 --- a/runtime/interpreter/value.go +++ b/runtime/interpreter/value.go @@ -1246,8 +1246,11 @@ var EmptyString = NewUnmeteredStringValue("") func (v *StringValue) Slice(from IntValue, to IntValue, locationRange LocationRange) Value { fromIndex := from.ToInt(locationRange) - toIndex := to.ToInt(locationRange) + return v.slice(fromIndex, toIndex, locationRange) +} + +func (v *StringValue) slice(fromIndex int, toIndex int, locationRange LocationRange) *StringValue { length := v.Length() @@ -1394,6 +1397,40 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location }, ) + case sema.StringTypeIndexFunctionName: + return NewBoundHostFunctionValue( + interpreter, + v, + sema.StringTypeIndexFunctionType, + func(invocation Invocation) Value { + other, ok := invocation.Arguments[0].(*StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + return v.IndexOf(invocation.Interpreter, other) + }, + ) + + case sema.StringTypeCountFunctionName: + return NewBoundHostFunctionValue( + interpreter, + v, + sema.StringTypeIndexFunctionType, + func(invocation Invocation) Value { + other, ok := invocation.Arguments[0].(*StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + return v.Count( + invocation.Interpreter, + invocation.LocationRange, + other, + ) + }, + ) + case sema.StringTypeDecodeHexFunctionName: return NewBoundHostFunctionValue( interpreter, @@ -1703,36 +1740,59 @@ func (v *StringValue) ForEach( } } -func (v *StringValue) IsBoundaryStart(start int) bool { +func (v *StringValue) IsGraphemeBoundaryStart(startOffset int) bool { v.prepareGraphemes() - return v.isGraphemeBoundaryStartPrepared(start) + + var characterIndex int + return v.seekGraphemeBoundaryStartPrepared(startOffset, &characterIndex) } -func (v *StringValue) isGraphemeBoundaryStartPrepared(start int) bool { +func (v *StringValue) seekGraphemeBoundaryStartPrepared(startOffset int, characterIndex *int) bool { - for { - boundaryStart, _ := v.graphemes.Positions() - if start == boundaryStart { - return true - } else if boundaryStart > start { - return false + for ; v.graphemes.Next(); *characterIndex++ { + + boundaryStart, boundaryEnd := v.graphemes.Positions() + if boundaryStart == boundaryEnd { + // Graphemes.Positions() should never return a zero-length grapheme, + // and only does so if the grapheme iterator + // - is at the beginning of the string and has not been initialized (i.e. Next() has not been called); or + // - is at the end of the string and has been exhausted (i.e. Next() has returned false) + panic(errors.NewUnreachableError()) } - if !v.graphemes.Next() { + if startOffset == boundaryStart { + return true + } else if boundaryStart > startOffset { return false } } + + return false } -func (v *StringValue) IsBoundaryEnd(end int) bool { +func (v *StringValue) IsGraphemeBoundaryEnd(end int) bool { v.prepareGraphemes() + v.graphemes.Next() + return v.isGraphemeBoundaryEndPrepared(end) } func (v *StringValue) isGraphemeBoundaryEndPrepared(end int) bool { + // Empty strings have no grapheme clusters, and therefore no boundaries + if len(v.Str) == 0 { + return false + } for { - _, boundaryEnd := v.graphemes.Positions() + boundaryStart, boundaryEnd := v.graphemes.Positions() + if boundaryStart == boundaryEnd { + // Graphemes.Positions() should never return a zero-length grapheme, + // and only does so if the grapheme iterator + // - is at the beginning of the string and has not been initialized (i.e. Next() has not been called); or + // - is at the end of the string and has been exhausted (i.e. Next() has returned false) + panic(errors.NewUnreachableError()) + } + if end == boundaryEnd { return true } else if boundaryEnd > end { @@ -1745,7 +1805,16 @@ func (v *StringValue) isGraphemeBoundaryEndPrepared(end int) bool { } } -func (v *StringValue) Contains(inter *Interpreter, other *StringValue) BoolValue { +func (v *StringValue) IndexOf(inter *Interpreter, other *StringValue) IntValue { + index := v.indexOf(inter, other) + return NewIntValueFromInt64(inter, int64(index)) +} + +func (v *StringValue) indexOf(inter *Interpreter, other *StringValue) int { + + if len(other.Str) == 0 { + return 0 + } // Meter computation as if the string was iterated. // This is a conservative over-estimation. @@ -1753,22 +1822,93 @@ func (v *StringValue) Contains(inter *Interpreter, other *StringValue) BoolValue v.prepareGraphemes() - for start := 0; start < len(v.Str); start++ { + // We are dealing with two different positions / indices / measures: + // - 'CharacterIndex' indicates Cadence characters (grapheme clusters) + // - 'ByteOffset' indicates bytes + + // The resulting index, in terms of Cadence characters (grapheme clusters) + var characterIndex int + + // Find the position of the substring in the string, + // by using strings.Index with an increasing start byte offset. + // + // The byte offset returned from strings.Index is the start of the substring in the string, + // but it may not be at a grapheme boundary, so we need to check + // that both the start and end byte offsets are grapheme boundaries. + // + // We do not have a way to translate a byte offset into a character index. + // Instead, we iterate over the grapheme clusters until we reach the byte offset, + // keeping track of the character index. + // + // We need to back up and restore the grapheme iterator and character index + // when either the start or the end byte offset are not grapheme boundaries, + // so the next iteration can start from the correct position. + + for searchStartByteOffset := 0; searchStartByteOffset < len(v.Str); searchStartByteOffset++ { - start = strings.Index(v.Str[start:], other.Str) - if start < 0 { + relativeFoundByteOffset := strings.Index(v.Str[searchStartByteOffset:], other.Str) + if relativeFoundByteOffset < 0 { break } - if v.isGraphemeBoundaryStartPrepared(start) && - v.isGraphemeBoundaryEndPrepared(start+len(other.Str)) { + // The resulting found byte offset is relative to the search start byte offset, + // so we need to add the search start byte offset to get the absolute byte offset + absoluteFoundByteOffset := searchStartByteOffset + relativeFoundByteOffset + + // Back up the grapheme iterator and character index, + // so the iteration state can be restored + // in case the byte offset is not at a grapheme boundary + graphemesBackup := *v.graphemes + characterIndexBackup := characterIndex - return TrueValue + if v.seekGraphemeBoundaryStartPrepared(absoluteFoundByteOffset, &characterIndex) && + v.isGraphemeBoundaryEndPrepared(absoluteFoundByteOffset+len(other.Str)) { + + return characterIndex } + + // Restore the grapheme iterator and character index + v.graphemes = &graphemesBackup + characterIndex = characterIndexBackup } - return FalseValue + return -1 +} + +func (v *StringValue) Contains(inter *Interpreter, other *StringValue) BoolValue { + return AsBoolValue(v.indexOf(inter, other) >= 0) +} + +func (v *StringValue) Count(inter *Interpreter, locationRange LocationRange, other *StringValue) IntValue { + index := v.count(inter, locationRange, other) + return NewIntValueFromInt64(inter, int64(index)) +} + +func (v *StringValue) count(inter *Interpreter, locationRange LocationRange, other *StringValue) int { + if other.Length() == 0 { + return 1 + v.Length() + } + + // Meter computation as if the string was iterated. + inter.ReportComputation(common.ComputationKindLoop, uint(len(v.Str))) + + remaining := v + count := 0 + + for { + index := remaining.indexOf(inter, other) + if index == -1 { + return count + } + + count++ + remaining = remaining.slice( + index+other.Length(), + remaining.Length(), + locationRange, + ) + } } type StringValueIterator struct { diff --git a/runtime/interpreter/value_test.go b/runtime/interpreter/value_test.go index 1a0f82c6fe..c1c7d9a17b 100644 --- a/runtime/interpreter/value_test.go +++ b/runtime/interpreter/value_test.go @@ -4392,7 +4392,7 @@ func TestValue_ConformsToStaticType(t *testing.T) { } -func TestStringIsBoundaryStart(t *testing.T) { +func TestStringIsGraphemeBoundaryStart(t *testing.T) { t.Parallel() @@ -4402,11 +4402,11 @@ func TestStringIsBoundaryStart(t *testing.T) { t.Run(name, func(t *testing.T) { str := NewUnmeteredStringValue(s) - assert.Equal(t, expected, str.IsBoundaryStart(i)) + assert.Equal(t, expected, str.IsGraphemeBoundaryStart(i)) }) } - test("", 0, true) + test("", 0, false) test("a", 0, true) test("a", 1, false) test("ab", 1, true) @@ -4433,7 +4433,7 @@ func TestStringIsBoundaryStart(t *testing.T) { test(flagESflagEE, 15, false) } -func TestStringIsBoundaryEnd(t *testing.T) { +func TestStringIsGraphemeBoundaryEnd(t *testing.T) { t.Parallel() @@ -4443,19 +4443,19 @@ func TestStringIsBoundaryEnd(t *testing.T) { t.Run(name, func(t *testing.T) { str := NewUnmeteredStringValue(s) - assert.Equal(t, expected, str.IsBoundaryEnd(i)) + assert.Equal(t, expected, str.IsGraphemeBoundaryEnd(i)) }) } - test("", 0, true) - test("a", 0, true) + test("", 0, false) + test("a", 0, false) test("a", 1, true) test("ab", 1, true) // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") flagESflagEE := "\U0001F1EA\U0001F1F8\U0001F1EA\U0001F1EA" require.Len(t, flagESflagEE, 16) - test(flagESflagEE, 0, true) + test(flagESflagEE, 0, false) test(flagESflagEE, 1, false) test(flagESflagEE, 2, false) test(flagESflagEE, 3, false) @@ -4472,4 +4472,7 @@ func TestStringIsBoundaryEnd(t *testing.T) { test(flagESflagEE, 13, false) test(flagESflagEE, 14, false) test(flagESflagEE, 15, false) + + test(flagESflagEE, 16, true) + } diff --git a/runtime/sema/string_type.go b/runtime/sema/string_type.go index 5ce6c2f1fb..7318e7fbb7 100644 --- a/runtime/sema/string_type.go +++ b/runtime/sema/string_type.go @@ -129,6 +129,18 @@ func init() { StringTypeContainsFunctionType, stringTypeContainsFunctionDocString, ), + NewUnmeteredPublicFunctionMember( + t, + StringTypeIndexFunctionName, + StringTypeIndexFunctionType, + stringTypeIndexFunctionDocString, + ), + NewUnmeteredPublicFunctionMember( + t, + StringTypeCountFunctionName, + StringTypeCountFunctionType, + stringTypeCountFunctionDocString, + ), }) } } @@ -194,6 +206,46 @@ const stringTypeContainsFunctionDocString = ` Returns true if this string contains the given other string as a substring. ` +var StringTypeIndexFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: "of", + Identifier: "other", + TypeAnnotation: StringTypeAnnotation, + }, + }, + IntTypeAnnotation, +) + +const StringTypeIndexFunctionName = "index" + +const stringTypeIndexFunctionDocString = ` +Returns the index within this string of the first occurrence of the given substring. + +If the substring is not found, the function returns -1. +` + +var StringTypeCountFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "other", + TypeAnnotation: StringTypeAnnotation, + }, + }, + IntTypeAnnotation, +) + +const StringTypeCountFunctionName = "count" + +const stringTypeCountFunctionDocString = ` +Returns the number of non-overlapping instances of the given substring in this string. + +If the given substring is an empty string, the function returns 1 + the number of characters in this string. +` + const StringTypeReplaceAllFunctionName = "replaceAll" const StringTypeReplaceAllFunctionDocString = ` Returns a new string after replacing all the occurrences of parameter ` + "`of` with the parameter `with`" + `. diff --git a/runtime/tests/checker/string_test.go b/runtime/tests/checker/string_test.go index 756b6c9ec7..d857185350 100644 --- a/runtime/tests/checker/string_test.go +++ b/runtime/tests/checker/string_test.go @@ -579,3 +579,121 @@ func TestCheckStringContains(t *testing.T) { require.NoError(t, err) }) } + +func TestCheckStringIndex(t *testing.T) { + + t.Parallel() + + t.Run("missing argument", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Int = a.index() + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InsufficientArgumentsError{}, errs[0]) + }) + + t.Run("wrong argument type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Int = a.index(of: 1) + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }) + + t.Run("wrong argument label", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Int = a.index(foo: "bc") + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.IncorrectArgumentLabelError{}, errs[0]) + }) + + t.Run("missing argument label", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Int = a.index("bc") + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingArgumentLabelError{}, errs[0]) + }) + + t.Run("valid", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Int = a.index(of: "bc") + `) + + require.NoError(t, err) + }) +} + +func TestCheckStringCount(t *testing.T) { + + t.Parallel() + + t.Run("missing argument", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Int = a.count() + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InsufficientArgumentsError{}, errs[0]) + }) + + t.Run("wrong argument type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Int = a.count(1) + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }) + + t.Run("valid", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a = "abcdef" + let x: Int = a.count("b") + `) + + require.NoError(t, err) + }) +} diff --git a/runtime/tests/interpreter/string_test.go b/runtime/tests/interpreter/string_test.go index b342e14ec9..6a276d245c 100644 --- a/runtime/tests/interpreter/string_test.go +++ b/runtime/tests/interpreter/string_test.go @@ -724,3 +724,147 @@ func TestInterpretStringContains(t *testing.T) { runTest(test) } } + +func TestInterpretStringIndex(t *testing.T) { + + t.Parallel() + + type test struct { + str string + subStr string + result int + } + + tests := []test{ + {"abcdef", "", 0}, + {"abcdef", "a", 0}, + {"abcdef", "ab", 0}, + {"abcdef", "ac", -1}, + {"abcdef", "b", 1}, + {"abcdef", "bc", 1}, + {"abcdef", "bcd", 1}, + {"abcdef", "c", 2}, + {"abcdef", "cd", 2}, + {"abcdef", "cdef", 2}, + {"abcdef", "cdefg", -1}, + {"abcdef", "abcdef", 0}, + {"abcdef", "abcdefg", -1}, + + // U+1F476 U+1F3FB is πŸ‘ΆπŸ» + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", " \\u{1F476}", -1}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{1F3FB}", -1}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", " \\u{1F476}\\u{1F3FB}", 0}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{1F476}\\u{1F3FB}", 1}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{1F476}\\u{1F3FB} ", 1}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{D}", -1}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", "\\u{A}", -1}, + {" \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", " ascii ", 2}, + + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") contains πŸ‡ͺπŸ‡Έ("ES") + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1EA}\\u{1F1F8}", 0}, + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") contains πŸ‡ͺπŸ‡ͺ ("EE") + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1EA}\\u{1F1EA}", 1}, + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") does NOT contain πŸ‡ΈπŸ‡ͺ ("SE") + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1F8}\\u{1F1EA}", -1}, + // neither prefix nor suffix of codepoints are valid + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}", -1}, + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", "\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", -1}, + } + + runTest := func(test test) { + + name := fmt.Sprintf("%s, %s", test.str, test.subStr) + + t.Run(name, func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, + fmt.Sprintf( + ` + fun test(): Int { + let s = "%s" + return s.index(of: "%s") + } + `, + test.str, + test.subStr, + ), + ) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + require.IsType(t, interpreter.IntValue{}, value) + actual := value.(interpreter.IntValue) + require.Equal(t, test.result, actual.ToInt(interpreter.EmptyLocationRange)) + }) + } + + for _, test := range tests { + runTest(test) + } +} + +func TestInterpretStringCount(t *testing.T) { + + t.Parallel() + + type test struct { + str string + subStr string + result int + } + + tests := []test{ + {"", "", 1}, + {"abcdef", "", 7}, + + {"", "notempty", 0}, + {"notempty", "", 9}, + {"smaller", "not smaller", 0}, + {"12345678987654321", "6", 2}, + {"611161116", "6", 3}, + {"notequal", "NotEqual", 0}, + {"equal", "equal", 1}, + {"abc1231231123q", "123", 3}, + {"11111", "11", 2}, + + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺπŸ‡ͺπŸ‡Έ ("ES", "EE", "ES") contains πŸ‡ͺπŸ‡Έ("ES") twice + {"\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}\\u{1F1EA}\\u{1F1F8}", "\\u{1F1EA}\\u{1F1F8}", 2}, + } + + runTest := func(test test) { + + name := fmt.Sprintf("%s, %s", test.str, test.subStr) + + t.Run(name, func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, + fmt.Sprintf( + ` + fun test(): Int { + let s = "%s" + return s.count("%s") + } + `, + test.str, + test.subStr, + ), + ) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + require.IsType(t, interpreter.IntValue{}, value) + actual := value.(interpreter.IntValue) + require.Equal(t, test.result, actual.ToInt(interpreter.EmptyLocationRange)) + }) + } + + for _, test := range tests { + runTest(test) + } +} From c880217ea573ed35e27281be7cbbdc54efadc254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Tue, 9 Jul 2024 12:07:42 -0700 Subject: [PATCH 06/17] fix String.split: split into characters (grapheme clusters) --- runtime/interpreter/value.go | 81 +++++++-- runtime/tests/interpreter/metering_test.go | 2 +- runtime/tests/interpreter/string_test.go | 185 +++++++++++---------- 3 files changed, 172 insertions(+), 96 deletions(-) diff --git a/runtime/interpreter/value.go b/runtime/interpreter/value.go index f813b80e6a..8f92804ff8 100644 --- a/runtime/interpreter/value.go +++ b/runtime/interpreter/value.go @@ -1465,7 +1465,11 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location panic(errors.NewUnreachableError()) } - return v.Split(invocation.Interpreter, invocation.LocationRange, separator.Str) + return v.Split( + invocation.Interpreter, + invocation.LocationRange, + separator, + ) }, ) @@ -1545,16 +1549,17 @@ func (v *StringValue) ToLower(interpreter *Interpreter) *StringValue { ) } -func (v *StringValue) Split(inter *Interpreter, _ LocationRange, separator string) Value { +func (v *StringValue) Split(inter *Interpreter, locationRange LocationRange, separator *StringValue) *ArrayValue { - // 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))) + if len(separator.Str) == 0 { + return v.Explode(inter, locationRange) + } - split := strings.Split(v.Str, separator) + count := v.count(inter, locationRange, separator) + 1 - var index int - count := len(split) + partIndex := 0 + + remaining := v return NewArrayValueWithIterator( inter, @@ -1562,12 +1567,66 @@ func (v *StringValue) Split(inter *Interpreter, _ LocationRange, separator strin common.ZeroAddress, uint64(count), func() Value { - if index >= count { + + inter.ReportComputation(common.ComputationKindLoop, 1) + + if partIndex >= count { return nil } - str := split[index] - index++ + // Set the remainder as the last part + if partIndex == count-1 { + partIndex++ + return remaining + } + + separatorCharacterIndex := remaining.indexOf(inter, separator) + if separatorCharacterIndex < 0 { + return nil + } + + partIndex++ + + part := remaining.slice( + 0, + separatorCharacterIndex, + locationRange, + ) + + remaining = remaining.slice( + separatorCharacterIndex+separator.Length(), + remaining.Length(), + locationRange, + ) + + return part + }, + ) +} + +// Explode returns a Cadence array of type [String], where each element is a single character of the string +func (v *StringValue) Explode(inter *Interpreter, locationRange LocationRange) *ArrayValue { + + iterator := v.Iterator(inter, locationRange) + + return NewArrayValueWithIterator( + inter, + VarSizedArrayOfStringType, + common.ZeroAddress, + uint64(v.Length()), + func() Value { + value := iterator.Next(inter, locationRange) + if value == nil { + return nil + } + + character, ok := value.(CharacterValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + str := character.Str + return NewStringValue( inter, common.NewStringMemoryUsage(len(str)), diff --git a/runtime/tests/interpreter/metering_test.go b/runtime/tests/interpreter/metering_test.go index 9ca2d40026..776dcecc94 100644 --- a/runtime/tests/interpreter/metering_test.go +++ b/runtime/tests/interpreter/metering_test.go @@ -657,6 +657,6 @@ func TestInterpretStdlibComputationMetering(t *testing.T) { _, err = inter.Invoke("main") require.NoError(t, err) - assert.Equal(t, uint(10), computationMeteredValues[common.ComputationKindLoop]) + assert.Equal(t, uint(58), computationMeteredValues[common.ComputationKindLoop]) }) } diff --git a/runtime/tests/interpreter/string_test.go b/runtime/tests/interpreter/string_test.go index 6a276d245c..d6250b8631 100644 --- a/runtime/tests/interpreter/string_test.go +++ b/runtime/tests/interpreter/string_test.go @@ -504,97 +504,114 @@ func TestInterpretStringSplit(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - fun split(): [String] { - return "πŸ‘ͺ////❀️".split(separator: "////") - } - fun splitBySpace(): [String] { - return "πŸ‘ͺ ❀️ Abc6 ;123".split(separator: " ") - } - fun splitWithUnicodeEquivalence(): [String] { - return "Caf\u{65}\u{301}ABc".split(separator: "\u{e9}") - } - fun testEmptyString(): [String] { - return "".split(separator: "//") - } - fun testNoMatch(): [String] { - return "pqrS;asdf".split(separator: ";;") - } - `) + type test struct { + str string + sep string + result []string + } - testCase := func(t *testing.T, funcName string, expected *interpreter.ArrayValue) { - t.Run(funcName, func(t *testing.T) { - result, err := inter.Invoke(funcName) - require.NoError(t, err) + var abcd = "abcd" + var faces = "☺☻☹" + var commas = "1,2,3,4" + var dots = "1....2....3....4" - RequireValuesEqual( - t, - inter, - expected, - result, + tests := []test{ + {"", "", []string{}}, + {abcd, "", []string{"a", "b", "c", "d"}}, + {faces, "", []string{"☺", "☻", "☹"}}, + {"☺�☹", "", []string{"☺", "οΏ½", "☹"}}, + {abcd, "a", []string{"", "bcd"}}, + {abcd, "z", []string{"abcd"}}, + {commas, ",", []string{"1", "2", "3", "4"}}, + {dots, "...", []string{"1", ".2", ".3", ".4"}}, + {faces, "☹", []string{"☺☻", ""}}, + {faces, "~", []string{faces}}, + { + "\\u{1F46A}////\\u{2764}\\u{FE0F}", + "////", + []string{"\U0001F46A", "\u2764\uFE0F"}, + }, + { + "\\u{1F46A} \\u{2764}\\u{FE0F} Abc6 ;123", + " ", + []string{"\U0001F46A", "\u2764\uFE0F", "Abc6", ";123"}, + }, + { + "Caf\\u{65}\\u{301}ABc", + "\\u{e9}", + []string{"Caf", "ABc"}, + }, + { + "", + "//", + []string{""}, + }, + { + "pqrS;asdf", + ";;", + []string{"pqrS;asdf"}, + }, + { + // U+1F476 U+1F3FB is πŸ‘ΆπŸ» + " \\u{1F476}\\u{1F3FB} ascii \\u{D}\\u{A}", + " ", + []string{"", "\U0001F476\U0001F3FB", "ascii", "\u000D\u000A"}, + }, + // πŸ‡ͺπŸ‡ΈπŸ‡ΈπŸ‡ͺπŸ‡ͺπŸ‡ͺ is "ES", "SE", "EE" + { + "\\u{1F1EA}\\u{1F1F8}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}\\u{1F1EA}", + "\\u{1F1F8}\\u{1F1EA}", + []string{"\U0001F1EA\U0001F1F8", "\U0001F1EA\U0001F1EA"}, + }, + } + + runTest := func(test test) { + + name := fmt.Sprintf("%s, %s", test.str, test.sep) + + t.Run(name, func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, + fmt.Sprintf( + ` + fun test(): [String] { + let s = "%s" + return s.split(separator: "%s") + } + `, + test.str, + test.sep, + ), ) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + require.IsType(t, &interpreter.ArrayValue{}, value) + actual := value.(*interpreter.ArrayValue) + + require.Equal(t, len(test.result), actual.Count()) + + for partIndex, expected := range test.result { + actualPart := actual.Get( + inter, + interpreter.EmptyLocationRange, + partIndex, + ) + + require.IsType(t, &interpreter.StringValue{}, actualPart) + actualPartString := actualPart.(*interpreter.StringValue) + + require.Equal(t, expected, actualPartString.Str) + } }) } - varSizedStringType := &interpreter.VariableSizedStaticType{ - Type: interpreter.PrimitiveStaticTypeString, + for _, test := range tests { + runTest(test) } - - testCase(t, - "split", - interpreter.NewArrayValue( - inter, - interpreter.EmptyLocationRange, - varSizedStringType, - common.ZeroAddress, - interpreter.NewUnmeteredStringValue("πŸ‘ͺ"), - interpreter.NewUnmeteredStringValue("❀️"), - ), - ) - testCase(t, - "splitBySpace", - interpreter.NewArrayValue( - inter, - interpreter.EmptyLocationRange, - varSizedStringType, - common.ZeroAddress, - interpreter.NewUnmeteredStringValue("πŸ‘ͺ"), - interpreter.NewUnmeteredStringValue("❀️"), - interpreter.NewUnmeteredStringValue("Abc6"), - interpreter.NewUnmeteredStringValue(";123"), - ), - ) - testCase(t, - "splitWithUnicodeEquivalence", - interpreter.NewArrayValue( - inter, - interpreter.EmptyLocationRange, - varSizedStringType, - common.ZeroAddress, - interpreter.NewUnmeteredStringValue("Caf"), - interpreter.NewUnmeteredStringValue("ABc"), - ), - ) - testCase(t, - "testEmptyString", - interpreter.NewArrayValue( - inter, - interpreter.EmptyLocationRange, - varSizedStringType, - common.ZeroAddress, - interpreter.NewUnmeteredStringValue(""), - ), - ) - testCase(t, - "testNoMatch", - interpreter.NewArrayValue( - inter, - interpreter.EmptyLocationRange, - varSizedStringType, - common.ZeroAddress, - interpreter.NewUnmeteredStringValue("pqrS;asdf"), - ), - ) } func TestInterpretStringReplaceAll(t *testing.T) { From e27955a110a9bed211178b09632ef0c1eee57c6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Tue, 9 Jul 2024 12:36:25 -0700 Subject: [PATCH 07/17] improve tests --- runtime/tests/interpreter/string_test.go | 92 +++++++++++++++--------- 1 file changed, 57 insertions(+), 35 deletions(-) diff --git a/runtime/tests/interpreter/string_test.go b/runtime/tests/interpreter/string_test.go index d6250b8631..72f033a712 100644 --- a/runtime/tests/interpreter/string_test.go +++ b/runtime/tests/interpreter/string_test.go @@ -618,47 +618,69 @@ 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") - } - `) + type test struct { + str string + old string + new string + result string + } - 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) + tests := []test{ + {"hello", "l", "L", "heLLo"}, + {"hello", "x", "X", "hello"}, + {"", "x", "X", ""}, + {"radar", "r", "", "ada"}, + {"", "", "<>", "<>"}, + {"banana", "a", "<>", "b<>n<>n<>"}, + {"banana", "an", "<>", "b<><>a"}, + {"banana", "ana", "<>", "b<>na"}, + {"banana", "", "<>", "<>b<>a<>n<>a<>n<>a<>"}, + {"banana", "a", "a", "banana"}, + {"☺☻☹", "", "<>", "<>☺<>☻<>☹<>"}, + + {"\\u{1F46A}////\\u{2764}\\u{FE0F}", "////", "||", "\U0001F46A||\u2764\uFE0F"}, + {"πŸ‘ͺ ❀️ Abc6 ;123", " ", " ", "πŸ‘ͺ ❀️ Abc6 ;123"}, + {"Caf\\u{65}\\u{301}ABc", "\\u{e9}", "X", "CafXABc"}, + {"", "//", "abc", ""}, + {"abc", "", "1", "1a1b1c1"}, + {"pqrS;asdf", ";;", "does_not_matter", "pqrS;asdf"}, + } - RequireValuesEqual( - t, - inter, - expected, - result, + runTest := func(test test) { + + name := fmt.Sprintf("%s, %s, %s", test.str, test.old, test.new) + + t.Run(name, func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, + fmt.Sprintf( + ` + fun test(): String { + let s = "%s" + return s.replaceAll(of: "%s", with: "%s") + } + `, + test.str, + test.old, + test.new, + ), ) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + require.IsType(t, &interpreter.StringValue{}, value) + actual := value.(*interpreter.StringValue) + + require.Equal(t, test.result, actual.Str) }) } - 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")) + for _, test := range tests { + runTest(test) + } } func TestInterpretStringContains(t *testing.T) { From 6e96083c1d74ddd980ff01bd98d8985dad504c90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Tue, 9 Jul 2024 14:11:38 -0700 Subject: [PATCH 08/17] fix String.replaceAll: replace characters (grapheme clusters) --- runtime/interpreter/value.go | 91 ++++++++--- runtime/sema/string_type.go | 182 +++++++++++---------- runtime/tests/interpreter/metering_test.go | 2 +- runtime/tests/interpreter/string_test.go | 29 ++++ 4 files changed, 188 insertions(+), 116 deletions(-) diff --git a/runtime/interpreter/value.go b/runtime/interpreter/value.go index 8f92804ff8..1c63025a6d 100644 --- a/runtime/interpreter/value.go +++ b/runtime/interpreter/value.go @@ -1225,8 +1225,7 @@ 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)) + interpreter.ReportComputation(common.ComputationKindLoop, uint(newLength)) return NewStringValue( interpreter, @@ -1479,17 +1478,22 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location v, sema.StringTypeReplaceAllFunctionType, func(invocation Invocation) Value { - of, ok := invocation.Arguments[0].(*StringValue) + original, ok := invocation.Arguments[0].(*StringValue) if !ok { panic(errors.NewUnreachableError()) } - with, ok := invocation.Arguments[1].(*StringValue) + replacement, ok := invocation.Arguments[1].(*StringValue) if !ok { panic(errors.NewUnreachableError()) } - return v.ReplaceAll(invocation.Interpreter, invocation.LocationRange, of.Str, with.Str) + return v.ReplaceAll( + invocation.Interpreter, + invocation.LocationRange, + original, + replacement, + ) }, ) } @@ -1580,7 +1584,7 @@ func (v *StringValue) Split(inter *Interpreter, locationRange LocationRange, sep return remaining } - separatorCharacterIndex := remaining.indexOf(inter, separator) + separatorCharacterIndex, _ := remaining.indexOf(inter, separator) if separatorCharacterIndex < 0 { return nil } @@ -1638,23 +1642,62 @@ func (v *StringValue) Explode(inter *Interpreter, locationRange LocationRange) * ) } -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) +func (v *StringValue) ReplaceAll( + inter *Interpreter, + locationRange LocationRange, + original *StringValue, + replacement *StringValue, +) *StringValue { - memoryUsage := common.NewStringMemoryUsage(lengthOverEstimate) + count := v.count(inter, locationRange, original) + if count == 0 { + return v + } + + newByteLength := len(v.Str) + count*(len(replacement.Str)-len(original.Str)) + + memoryUsage := common.NewStringMemoryUsage(newByteLength) // Meter computation as if the string was iterated. - inter.ReportComputation(common.ComputationKindLoop, uint(strLen)) + inter.ReportComputation(common.ComputationKindLoop, uint(len(v.Str))) + + remaining := v return NewStringValue( inter, memoryUsage, func() string { - return strings.ReplaceAll(v.Str, of, with) + var b strings.Builder + b.Grow(newByteLength) + for i := 0; i < count; i++ { + + var originalCharacterIndex, originalByteOffset int + if original.Length() == 0 { + if i > 0 { + originalCharacterIndex = 1 + + remaining.prepareGraphemes() + remaining.graphemes.Next() + _, originalByteOffset = remaining.graphemes.Positions() + } + } else { + originalCharacterIndex, originalByteOffset = remaining.indexOf(inter, original) + if originalCharacterIndex < 0 { + panic(errors.NewUnreachableError()) + } + } + + b.WriteString(remaining.Str[:originalByteOffset]) + b.WriteString(replacement.Str) + + remaining = remaining.slice( + originalCharacterIndex+original.Length(), + remaining.Length(), + locationRange, + ) + } + b.WriteString(remaining.Str) + return b.String() }, ) } @@ -1865,14 +1908,14 @@ func (v *StringValue) isGraphemeBoundaryEndPrepared(end int) bool { } func (v *StringValue) IndexOf(inter *Interpreter, other *StringValue) IntValue { - index := v.indexOf(inter, other) + index, _ := v.indexOf(inter, other) return NewIntValueFromInt64(inter, int64(index)) } -func (v *StringValue) indexOf(inter *Interpreter, other *StringValue) int { +func (v *StringValue) indexOf(inter *Interpreter, other *StringValue) (characterIndex int, byteOffset int) { if len(other.Str) == 0 { - return 0 + return 0, 0 } // Meter computation as if the string was iterated. @@ -1885,9 +1928,6 @@ func (v *StringValue) indexOf(inter *Interpreter, other *StringValue) int { // - 'CharacterIndex' indicates Cadence characters (grapheme clusters) // - 'ByteOffset' indicates bytes - // The resulting index, in terms of Cadence characters (grapheme clusters) - var characterIndex int - // Find the position of the substring in the string, // by using strings.Index with an increasing start byte offset. // @@ -1923,7 +1963,7 @@ func (v *StringValue) indexOf(inter *Interpreter, other *StringValue) int { if v.seekGraphemeBoundaryStartPrepared(absoluteFoundByteOffset, &characterIndex) && v.isGraphemeBoundaryEndPrepared(absoluteFoundByteOffset+len(other.Str)) { - return characterIndex + return characterIndex, absoluteFoundByteOffset } // Restore the grapheme iterator and character index @@ -1931,11 +1971,12 @@ func (v *StringValue) indexOf(inter *Interpreter, other *StringValue) int { characterIndex = characterIndexBackup } - return -1 + return -1, -1 } func (v *StringValue) Contains(inter *Interpreter, other *StringValue) BoolValue { - return AsBoolValue(v.indexOf(inter, other) >= 0) + characterIndex, _ := v.indexOf(inter, other) + return AsBoolValue(characterIndex >= 0) } func (v *StringValue) Count(inter *Interpreter, locationRange LocationRange, other *StringValue) IntValue { @@ -1955,7 +1996,7 @@ func (v *StringValue) count(inter *Interpreter, locationRange LocationRange, oth count := 0 for { - index := remaining.indexOf(inter, other) + index, _ := remaining.indexOf(inter, other) if index == -1 { return count } diff --git a/runtime/sema/string_type.go b/runtime/sema/string_type.go index 7318e7fbb7..200c599f88 100644 --- a/runtime/sema/string_type.go +++ b/runtime/sema/string_type.go @@ -22,26 +22,101 @@ import ( "github.com/onflow/cadence/runtime/errors" ) +var StringTypeEncodeHexFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "data", + TypeAnnotation: ByteArrayTypeAnnotation, + }, + }, + StringTypeAnnotation, +) + const StringTypeEncodeHexFunctionName = "encodeHex" const StringTypeEncodeHexFunctionDocString = ` Returns a hexadecimal string for the given byte array ` +var StringTypeFromUtf8FunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "bytes", + TypeAnnotation: ByteArrayTypeAnnotation, + }, + }, + NewTypeAnnotation( + &OptionalType{ + Type: StringType, + }, + ), +) + const StringTypeFromUtf8FunctionName = "fromUTF8" const StringTypeFromUtf8FunctionDocString = ` Attempt to decode the input as a UTF-8 encoded string. Returns nil if the input bytes are malformed UTF-8 ` +var StringTypeFromCharactersFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "characters", + TypeAnnotation: NewTypeAnnotation(&VariableSizedType{ + Type: CharacterType, + }), + }, + }, + StringTypeAnnotation, +) + const StringTypeFromCharactersFunctionName = "fromCharacters" const StringTypeFromCharactersFunctionDocString = ` Returns a string from the given array of characters ` +var StringTypeJoinFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "strings", + TypeAnnotation: NewTypeAnnotation(&VariableSizedType{ + Type: StringType, + }), + }, + { + Identifier: "separator", + TypeAnnotation: NewTypeAnnotation(StringType), + }, + }, + StringTypeAnnotation, +) + const StringTypeJoinFunctionName = "join" const StringTypeJoinFunctionDocString = ` Returns a string after joining the array of strings with the provided separator. ` +var StringTypeSplitFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Identifier: "separator", + TypeAnnotation: StringTypeAnnotation, + }, + }, + NewTypeAnnotation( + &VariableSizedType{ + Type: StringType, + }, + ), +) + const StringTypeSplitFunctionName = "split" const StringTypeSplitFunctionDocString = ` Returns a variable-sized array of strings after splitting the string on the delimiter. @@ -246,6 +321,23 @@ Returns the number of non-overlapping instances of the given substring in this s If the given substring is an empty string, the function returns 1 + the number of characters in this string. ` +var StringTypeReplaceAllFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: "of", + Identifier: "old", + TypeAnnotation: StringTypeAnnotation, + }, + { + Label: "with", + Identifier: "replacement", + TypeAnnotation: StringTypeAnnotation, + }, + }, + StringTypeAnnotation, +) + const StringTypeReplaceAllFunctionName = "replaceAll" const StringTypeReplaceAllFunctionDocString = ` Returns a new string after replacing all the occurrences of parameter ` + "`of` with the parameter `with`" + `. @@ -376,93 +468,3 @@ var StringFunctionType = func() *FunctionType { return functionType }() - -var StringTypeEncodeHexFunctionType = NewSimpleFunctionType( - FunctionPurityView, - []Parameter{ - { - Label: ArgumentLabelNotRequired, - Identifier: "data", - TypeAnnotation: ByteArrayTypeAnnotation, - }, - }, - StringTypeAnnotation, -) - -var StringTypeFromUtf8FunctionType = NewSimpleFunctionType( - FunctionPurityView, - []Parameter{ - { - Label: ArgumentLabelNotRequired, - Identifier: "bytes", - TypeAnnotation: ByteArrayTypeAnnotation, - }, - }, - NewTypeAnnotation( - &OptionalType{ - Type: StringType, - }, - ), -) - -var StringTypeFromCharactersFunctionType = NewSimpleFunctionType( - FunctionPurityView, - []Parameter{ - { - Label: ArgumentLabelNotRequired, - Identifier: "characters", - TypeAnnotation: NewTypeAnnotation(&VariableSizedType{ - Type: CharacterType, - }), - }, - }, - StringTypeAnnotation, -) - -var StringTypeJoinFunctionType = NewSimpleFunctionType( - FunctionPurityView, - []Parameter{ - { - Label: ArgumentLabelNotRequired, - Identifier: "strings", - TypeAnnotation: NewTypeAnnotation(&VariableSizedType{ - Type: StringType, - }), - }, - { - Identifier: "separator", - TypeAnnotation: NewTypeAnnotation(StringType), - }, - }, - StringTypeAnnotation, -) - -var StringTypeSplitFunctionType = NewSimpleFunctionType( - FunctionPurityView, - []Parameter{ - { - Identifier: "separator", - TypeAnnotation: StringTypeAnnotation, - }, - }, - NewTypeAnnotation( - &VariableSizedType{ - Type: StringType, - }, - ), -) - -var StringTypeReplaceAllFunctionType = NewSimpleFunctionType( - FunctionPurityView, - []Parameter{ - { - Identifier: "of", - TypeAnnotation: StringTypeAnnotation, - }, - { - Identifier: "with", - TypeAnnotation: StringTypeAnnotation, - }, - }, - StringTypeAnnotation, -) diff --git a/runtime/tests/interpreter/metering_test.go b/runtime/tests/interpreter/metering_test.go index 776dcecc94..ec60e46b97 100644 --- a/runtime/tests/interpreter/metering_test.go +++ b/runtime/tests/interpreter/metering_test.go @@ -609,7 +609,7 @@ func TestInterpretStdlibComputationMetering(t *testing.T) { _, err = inter.Invoke("main") require.NoError(t, err) - assert.Equal(t, uint(8), computationMeteredValues[common.ComputationKindLoop]) + assert.Equal(t, uint(55), computationMeteredValues[common.ComputationKindLoop]) }) t.Run("string to lower", func(t *testing.T) { diff --git a/runtime/tests/interpreter/string_test.go b/runtime/tests/interpreter/string_test.go index 72f033a712..9735a19f3a 100644 --- a/runtime/tests/interpreter/string_test.go +++ b/runtime/tests/interpreter/string_test.go @@ -644,6 +644,35 @@ func TestInterpretStringReplaceAll(t *testing.T) { {"", "//", "abc", ""}, {"abc", "", "1", "1a1b1c1"}, {"pqrS;asdf", ";;", "does_not_matter", "pqrS;asdf"}, + + { + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺ ("ES", "EE") does NOT contain πŸ‡ΈπŸ‡ͺ ("SE") + "\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}", + "\\u{1F1F8}\\u{1F1EA}", + "XX", + "\U0001F1EA\U0001F1F8\U0001F1EA\U0001F1EA", + }, + { + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺπŸ‡ͺπŸ‡Έ ("ES", "EE", "ES") + "\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}\\u{1F1EA}\\u{1F1F8}", + "\\u{1F1EA}\\u{1F1EA}", + "XX", + "\U0001F1EA\U0001F1F8XX\U0001F1EA\U0001F1F8", + }, + { + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺπŸ‡ͺπŸ‡Έ ("ES", "EE", "ES") + "\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}\\u{1F1EA}\\u{1F1F8}", + "\\u{1F1EA}\\u{1F1F8}", + "XX", + "XX\U0001F1EA\U0001F1EAXX", + }, + { + // πŸ‡ͺπŸ‡ΈπŸ‡ͺπŸ‡ͺπŸ‡ͺπŸ‡Έ ("ES", "EE", "ES") + "\\u{1F1EA}\\u{1F1F8}\\u{1F1EA}\\u{1F1EA}\\u{1F1EA}\\u{1F1F8}", + "", + "<>", + "<>\U0001F1EA\U0001F1F8<>\U0001F1EA\U0001F1EA<>\U0001F1EA\U0001F1F8<>", + }, } runTest := func(test test) { From 1adb25216350d88e5870d1853130a42910803214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Wed, 10 Jul 2024 14:38:39 -0700 Subject: [PATCH 09/17] emit events when capability controllers are issued --- migrations/capcons/linkmigration.go | 12 +- migrations/capcons/migration_test.go | 161 ++++++- migrations/migration_test.go | 22 + runtime/capabilitycontrollers_test.go | 667 +++++++++++++++++++++++--- runtime/convertValues_test.go | 6 + runtime/environment.go | 4 +- runtime/events.go | 28 +- runtime/inbox_test.go | 25 +- runtime/runtime_test.go | 20 + runtime/stdlib/account.go | 91 +++- runtime/stdlib/flow.go | 33 ++ runtime/storage_test.go | 18 + 12 files changed, 951 insertions(+), 136 deletions(-) diff --git a/migrations/capcons/linkmigration.go b/migrations/capcons/linkmigration.go index 7f78c75b3d..4dff48cbe6 100644 --- a/migrations/capcons/linkmigration.go +++ b/migrations/capcons/linkmigration.go @@ -40,9 +40,9 @@ type LinkMigrationReporter interface { // LinkValueMigration migrates all links to capability controllers. type LinkValueMigration struct { - CapabilityMapping *CapabilityMapping - AccountIDGenerator stdlib.AccountIDGenerator - Reporter LinkMigrationReporter + CapabilityMapping *CapabilityMapping + Handler stdlib.CapabilityControllerIssueHandler + Reporter LinkMigrationReporter } var _ migrations.ValueMigration = &LinkValueMigration{} @@ -98,7 +98,7 @@ func (m *LinkValueMigration) Migrate( } reporter := m.Reporter - accountIDGenerator := m.AccountIDGenerator + handler := m.Handler locationRange := interpreter.EmptyLocationRange @@ -180,7 +180,7 @@ func (m *LinkValueMigration) Migrate( capabilityID, _ = stdlib.IssueStorageCapabilityController( inter, locationRange, - accountIDGenerator, + handler, accountAddress, borrowType, targetPath, @@ -190,7 +190,7 @@ func (m *LinkValueMigration) Migrate( capabilityID, _ = stdlib.IssueAccountCapabilityController( inter, locationRange, - accountIDGenerator, + handler, accountAddress, borrowType, ) diff --git a/migrations/capcons/migration_test.go b/migrations/capcons/migration_test.go index df674b7674..d479af6b6e 100644 --- a/migrations/capcons/migration_test.go +++ b/migrations/capcons/migration_test.go @@ -36,11 +36,14 @@ import ( "github.com/onflow/cadence/runtime/tests/utils" ) -type testAccountIDGenerator struct { - ids map[common.Address]uint64 +type testCapConIssueHandler struct { + ids map[common.Address]uint64 + events []cadence.Event } -func (g *testAccountIDGenerator) GenerateAccountID(address common.Address) (uint64, error) { +var _ stdlib.CapabilityControllerIssueHandler = &testCapConIssueHandler{} + +func (g *testCapConIssueHandler) GenerateAccountID(address common.Address) (uint64, error) { if g.ids == nil { g.ids = make(map[common.Address]uint64) } @@ -48,6 +51,24 @@ func (g *testAccountIDGenerator) GenerateAccountID(address common.Address) (uint return g.ids[address], nil } +func (g *testCapConIssueHandler) EmitEvent( + inter *interpreter.Interpreter, + eventType *sema.CompositeType, + values []interpreter.Value, + locationRange interpreter.LocationRange, +) { + runtime.EmitEventFields( + inter, + locationRange, + eventType, + values, + func(event cadence.Event) error { + g.events = append(g.events, event) + return nil + }, + ) +} + type testCapConsLinkMigration struct { accountAddressPath interpreter.AddressPath capabilityID interpreter.UInt64Value @@ -240,7 +261,9 @@ func testPathCapabilityValueMigration( expectedErrors []error, expectedPathMigrations []testCapConsPathCapabilityMigration, expectedMissingCapabilityIDs []testCapConsMissingCapabilityID, - setupFunction, checkFunction string, + expectedEvents []string, + setupFunction string, + checkFunction string, borrowShouldFail bool, ) { require.True(t, @@ -466,13 +489,15 @@ func testPathCapabilityValueMigration( capabilityMapping := &CapabilityMapping{} + handler := &testCapConIssueHandler{} + migration.Migrate( migration.NewValueMigrationsPathMigrator( reporter, &LinkValueMigration{ - CapabilityMapping: capabilityMapping, - AccountIDGenerator: &testAccountIDGenerator{}, - Reporter: reporter, + CapabilityMapping: capabilityMapping, + Handler: handler, + Reporter: reporter, }, ), ) @@ -512,6 +537,11 @@ func testPathCapabilityValueMigration( err = storage.CheckHealth() require.NoError(t, err) + require.Equal(t, + expectedEvents, + nonDeploymentEventStrings(handler.events), + ) + if len(expectedMissingCapabilityIDs) == 0 { checkFunctionName := "checkMigratedCapabilityValueWithPathLink" @@ -549,6 +579,20 @@ func testPathCapabilityValueMigration( } } +func nonDeploymentEventStrings(events []cadence.Event) []string { + accountContractAddedEventTypeID := stdlib.AccountContractAddedEventType.ID() + + strings := make([]string, 0, len(events)) + for _, event := range events { + // Skip deployment events, i.e. contract added to account + if common.TypeID(event.Type().ID()) == accountContractAddedEventTypeID { + continue + } + strings = append(strings, event.String()) + } + return strings +} + func TestPathCapabilityValueMigration(t *testing.T) { t.Parallel() @@ -563,6 +607,7 @@ func TestPathCapabilityValueMigration(t *testing.T) { expectedPathMigrations []testCapConsPathCapabilityMigration expectedMissingCapabilityIDs []testCapConsMissingCapabilityID borrowShouldFail bool + expectedEvents []string } expectedWrappedCapabilityValueMigration := testMigration{ @@ -646,6 +691,10 @@ func TestPathCapabilityValueMigration(t *testing.T) { borrowType: testRReferenceStaticType, }, }, + expectedEvents: []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + }, }, { name: "Path links, working chain (public -> storage)", @@ -697,6 +746,9 @@ func TestPathCapabilityValueMigration(t *testing.T) { borrowType: testRReferenceStaticType, }, }, + expectedEvents: []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + }, }, { name: "Path links, working chain (private -> storage)", @@ -748,6 +800,9 @@ func TestPathCapabilityValueMigration(t *testing.T) { borrowType: testRReferenceStaticType, }, }, + expectedEvents: []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + }, }, // Test that the migration also follows capability controller, // which were already previously migrated from links. @@ -825,6 +880,10 @@ func TestPathCapabilityValueMigration(t *testing.T) { borrowType: testRReferenceStaticType, }, }, + expectedEvents: []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + }, }, // NOTE: this migrates a broken capability to a broken capability { @@ -878,6 +937,9 @@ func TestPathCapabilityValueMigration(t *testing.T) { borrowType: testRReferenceStaticType, }, }, + expectedEvents: []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.S>(), path: /storage/test)`, + }, borrowShouldFail: true, }, { @@ -932,6 +994,7 @@ func TestPathCapabilityValueMigration(t *testing.T) { }, }, }, + expectedEvents: []string{}, }, { name: "Path links, missing source (public -> private)", @@ -958,6 +1021,7 @@ func TestPathCapabilityValueMigration(t *testing.T) { }, }, }, + expectedEvents: []string{}, }, { name: "Path links, missing target (public -> private)", @@ -998,6 +1062,7 @@ func TestPathCapabilityValueMigration(t *testing.T) { }, }, }, + expectedEvents: []string{}, }, { name: "Account link, working chain (public)", @@ -1042,6 +1107,9 @@ func TestPathCapabilityValueMigration(t *testing.T) { borrowType: fullyEntitledAccountReferenceStaticType, }, }, + expectedEvents: []string{ + "flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type())", + }, }, { name: "Account link, working chain (private)", @@ -1086,6 +1154,9 @@ func TestPathCapabilityValueMigration(t *testing.T) { borrowType: fullyEntitledAccountReferenceStaticType, }, }, + expectedEvents: []string{ + "flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type())", + }, }, } @@ -1197,6 +1268,7 @@ func TestPathCapabilityValueMigration(t *testing.T) { linkTestCase.expectedErrors, linkTestCase.expectedPathMigrations, linkTestCase.expectedMissingCapabilityIDs, + linkTestCase.expectedEvents, valueTestCase.setupFunction, valueTestCase.checkFunction, linkTestCase.borrowShouldFail, @@ -1220,6 +1292,7 @@ func testLinkMigration( expectedLinkMigrations []testCapConsLinkMigration, expectedCyclicLinkErrors []CyclicLinkError, expectedMissingTargets []interpreter.AddressPath, + expectedEvents []string, ) { require.True(t, len(expectedLinkMigrations) == 0 || @@ -1309,13 +1382,15 @@ func testLinkMigration( capabilityMapping := &CapabilityMapping{} + handler := &testCapConIssueHandler{} + migration.Migrate( migration.NewValueMigrationsPathMigrator( reporter, &LinkValueMigration{ - CapabilityMapping: capabilityMapping, - AccountIDGenerator: &testAccountIDGenerator{}, - Reporter: reporter, + CapabilityMapping: capabilityMapping, + Handler: handler, + Reporter: reporter, }, ), ) @@ -1348,6 +1423,11 @@ func testLinkMigration( err = storage.CheckHealth() require.NoError(t, err) + + require.Equal(t, + expectedEvents, + nonDeploymentEventStrings(handler.events), + ) } func TestLinkMigration(t *testing.T) { @@ -1363,6 +1443,7 @@ func TestLinkMigration(t *testing.T) { expectedLinkMigrations []testCapConsLinkMigration expectedCyclicLinkErrors []CyclicLinkError expectedMissingTargets []interpreter.AddressPath + expectedEvents []string } linkTestCases := []linkTestCase{ @@ -1436,6 +1517,10 @@ func TestLinkMigration(t *testing.T) { capabilityID: 2, }, }, + expectedEvents: []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + }, }, { name: "Path links, working chain (public -> storage)", @@ -1476,6 +1561,9 @@ func TestLinkMigration(t *testing.T) { capabilityID: 1, }, }, + expectedEvents: []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + }, }, { name: "Path links, working chain (private -> storage)", @@ -1516,6 +1604,9 @@ func TestLinkMigration(t *testing.T) { capabilityID: 1, }, }, + expectedEvents: []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + }, }, // Test that the migration also follows capability controller, // which were already previously migrated from links. @@ -1592,6 +1683,10 @@ func TestLinkMigration(t *testing.T) { capabilityID: 2, }, }, + expectedEvents: []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/test)`, + }, }, { name: "Path links, cyclic chain (public -> private -> public)", @@ -1659,6 +1754,7 @@ func TestLinkMigration(t *testing.T) { }, }, }, + expectedEvents: []string{}, }, { name: "Path links, missing target (public -> private)", @@ -1686,6 +1782,7 @@ func TestLinkMigration(t *testing.T) { }, }, }, + expectedEvents: []string{}, }, { name: "Account link, working chain (public)", @@ -1719,6 +1816,9 @@ func TestLinkMigration(t *testing.T) { capabilityID: 1, }, }, + expectedEvents: []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type())`, + }, }, { name: "Account link, working chain (private)", @@ -1752,6 +1852,9 @@ func TestLinkMigration(t *testing.T) { capabilityID: 1, }, }, + expectedEvents: []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type())`, + }, }, { name: "Account link, working chain (public -> private)", @@ -1818,6 +1921,11 @@ func TestLinkMigration(t *testing.T) { capabilityID: 2, }, }, + expectedEvents: []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type())`, + // TODO: fix type + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&auth(Capabilities,Contracts,Inbox,Keys,Storage)&Account>())`, + }, }, } @@ -1835,6 +1943,7 @@ func TestLinkMigration(t *testing.T) { linkTestCase.expectedLinkMigrations, linkTestCase.expectedCyclicLinkErrors, linkTestCase.expectedMissingTargets, + linkTestCase.expectedEvents, ) }) } @@ -2018,13 +2127,15 @@ func TestPublishedPathCapabilityValueMigration(t *testing.T) { capabilityMapping := &CapabilityMapping{} + handler := &testCapConIssueHandler{} + migration.Migrate( migration.NewValueMigrationsPathMigrator( reporter, &LinkValueMigration{ - CapabilityMapping: capabilityMapping, - AccountIDGenerator: &testAccountIDGenerator{}, - Reporter: reporter, + CapabilityMapping: capabilityMapping, + Handler: handler, + Reporter: reporter, }, ), ) @@ -2059,6 +2170,14 @@ func TestPublishedPathCapabilityValueMigration(t *testing.T) { err = storage.CheckHealth() require.NoError(t, err) + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Int>(), path: /storage/test)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Int>(), path: /storage/test)`, + }, + nonDeploymentEventStrings(handler.events), + ) + // language=cadence checkScript := ` access(all) @@ -2258,13 +2377,15 @@ func TestUntypedPathCapabilityValueMigration(t *testing.T) { capabilityMapping := &CapabilityMapping{} + handler := &testCapConIssueHandler{} + migration.Migrate( migration.NewValueMigrationsPathMigrator( reporter, &LinkValueMigration{ - CapabilityMapping: capabilityMapping, - AccountIDGenerator: &testAccountIDGenerator{}, - Reporter: reporter, + CapabilityMapping: capabilityMapping, + Handler: handler, + Reporter: reporter, }, ), ) @@ -2299,6 +2420,14 @@ func TestUntypedPathCapabilityValueMigration(t *testing.T) { err = storage.CheckHealth() require.NoError(t, err) + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Int>(), path: /storage/test)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Int>(), path: /storage/test)`, + }, + nonDeploymentEventStrings(handler.events), + ) + // Check // language=cadence diff --git a/migrations/migration_test.go b/migrations/migration_test.go index 8cf592af51..9ad04376bb 100644 --- a/migrations/migration_test.go +++ b/migrations/migration_test.go @@ -768,11 +768,17 @@ func TestCapConMigration(t *testing.T) { 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 + }, } // Prepare @@ -949,6 +955,22 @@ func TestCapConMigration(t *testing.T) { accountCapEntry = accountCapStorageMap.ReadValue(nil, interpreter.Uint64StorageMapKey(2)) assert.NotNil(t, accountCapEntry) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&AnyStruct>(), path: /storage/foo)`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + }, + eventStrings(events), + ) +} + +func eventStrings(events []cadence.Event) []string { + strings := make([]string, 0, len(events)) + for _, event := range events { + strings = append(strings, event.String()) + } + return strings } func TestContractMigration(t *testing.T) { diff --git a/runtime/capabilitycontrollers_test.go b/runtime/capabilitycontrollers_test.go index 8bdc01b220..ca73145bbb 100644 --- a/runtime/capabilitycontrollers_test.go +++ b/runtime/capabilitycontrollers_test.go @@ -42,6 +42,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { testWithSignerCount := func(t *testing.T, tx string, signerCount int) ( err error, storage *Storage, + events []cadence.Event, ) { rt := NewTestInterpreterRuntime() @@ -144,7 +145,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { // NO-OP }, OnEmitEvent: func(event cadence.Event) error { - // NO-OP + events = append(events, event) return nil }, OnGetSigningAccounts: func() ([]Address, error) { @@ -200,6 +201,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { test := func(t *testing.T, tx string) ( err error, storage *Storage, + events []cadence.Event, ) { return testWithSignerCount(t, tx, 1) } @@ -222,7 +224,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -248,6 +250,11 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{}, + nonDeploymentEventStrings(events), + ) }) t.Run("get and check existing, with valid type", func(t *testing.T) { @@ -255,7 +262,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -291,10 +298,17 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("account capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -325,6 +339,12 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events)) }) }) @@ -334,7 +354,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -372,11 +392,17 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events)) }) t.Run("account capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -409,6 +435,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -418,7 +451,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -456,11 +489,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("account capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -495,6 +535,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -504,7 +551,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -542,11 +589,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("account capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -579,6 +633,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -587,7 +648,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -627,10 +688,17 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("account capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -665,6 +733,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -673,7 +748,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -693,6 +768,11 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{}, + nonDeploymentEventStrings(events), + ) }) t.Run("borrow existing, with valid type", func(t *testing.T) { @@ -700,7 +780,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -734,10 +814,17 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("account capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -766,6 +853,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -775,7 +869,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -809,11 +903,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("account capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -844,6 +945,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -853,7 +961,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -887,11 +995,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("account capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -920,6 +1035,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -928,7 +1050,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -964,10 +1086,17 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("account capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, fmt.Sprintf( // language=cadence @@ -998,6 +1127,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ), ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -1008,7 +1144,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() t.Run("storage capability", func(t *testing.T) { - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1035,10 +1171,17 @@ func TestRuntimeCapabilityControllers(t *testing.T) { var overwriteErr interpreter.OverwriteError require.ErrorAs(t, err, &overwriteErr) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) - t.Run("storage capability", func(t *testing.T) { - err, _ := test( + t.Run("account capability", func(t *testing.T) { + err, _, events := test( t, // language=cadence ` @@ -1062,6 +1205,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { var overwriteErr interpreter.OverwriteError require.ErrorAs(t, err, &overwriteErr) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -1071,7 +1221,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { - err, _ := testWithSignerCount( + err, _, events := testWithSignerCount( t, // language=cadence ` @@ -1106,11 +1256,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { interpreter.NewUnmeteredAddressValueFromBytes([]byte{0x1}), publishingError.CapabilityAddress, ) + + require.Equal( + t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&AnyStruct>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("account capability", func(t *testing.T) { - err, _ := testWithSignerCount( + err, _, events := testWithSignerCount( t, // language=cadence ` @@ -1144,6 +1302,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { interpreter.NewUnmeteredAddressValueFromBytes([]byte{0x1}), publishingError.CapabilityAddress, ) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -1151,7 +1316,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1169,6 +1334,11 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{}, + nonDeploymentEventStrings(events), + ) }) } }) @@ -1189,7 +1359,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1220,13 +1390,24 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal( + t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 4, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r2)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("issue, multiple controllers to various paths, with same or different type, type value", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1257,13 +1438,23 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 4, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r2)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("issue with type value, invalid type", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1277,13 +1468,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { RequireError(t, err) require.ErrorAs(t, err, &interpreter.InvalidCapabilityIssueTypeError{}) + + require.Equal(t, + []string{}, + nonDeploymentEventStrings(events), + ) }) t.Run("getController, non-existing", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1303,13 +1499,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{}, + nonDeploymentEventStrings(events), + ) }) t.Run("getController, account capability controller", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1330,13 +1531,20 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("getController, multiple controllers to various paths, with same or different type", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1388,13 +1596,23 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 4, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r2)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("getControllers", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1444,13 +1662,23 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 4, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r2)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, no controllers", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1475,13 +1703,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{}, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, all", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1544,13 +1777,23 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 4, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r2)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, stop immediately", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1584,13 +1827,21 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, mutation (issue), stop", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1618,13 +1869,21 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, mutation (issue), continue", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1655,13 +1914,21 @@ func TestRuntimeCapabilityControllers(t *testing.T) { var mutationErr stdlib.CapabilityControllersMutatedDuringIterationError require.ErrorAs(t, err, &mutationErr) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, mutation (delete), stop", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1689,13 +1956,20 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, mutation (delete), continue", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1726,6 +2000,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { var mutationErr stdlib.CapabilityControllersMutatedDuringIterationError require.ErrorAs(t, err, &mutationErr) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -1737,7 +2018,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1760,13 +2041,22 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("issue, multiple controllers, with same or different type, type value", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1789,13 +2079,22 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("issue with type value, invalid type", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1809,13 +2108,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { RequireError(t, err) require.ErrorAs(t, err, &interpreter.InvalidCapabilityIssueTypeError{}) + + require.Equal(t, + []string{}, + nonDeploymentEventStrings(events), + ) }) t.Run("getController, non-existing", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1835,13 +2139,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{}, + nonDeploymentEventStrings(events), + ) }) t.Run("getController, storage capability controller", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1862,13 +2171,20 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&AnyStruct>(), path: /storage/x)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("getController, multiple controllers to various paths, with same or different type", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1904,13 +2220,22 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("getControllers", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1951,13 +2276,23 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal( + t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, no controllers", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -1980,13 +2315,18 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{}, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, all", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2031,13 +2371,22 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, stop immediately", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2066,13 +2415,21 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, mutation (issue), continue", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2098,13 +2455,21 @@ func TestRuntimeCapabilityControllers(t *testing.T) { var mutationErr stdlib.CapabilityControllersMutatedDuringIterationError require.ErrorAs(t, err, &mutationErr) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, mutation (issue), stop", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2127,13 +2492,21 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, mutation (delete), continue", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2159,13 +2532,20 @@ func TestRuntimeCapabilityControllers(t *testing.T) { var mutationErr stdlib.CapabilityControllersMutatedDuringIterationError require.ErrorAs(t, err, &mutationErr) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("forEachController, mutation (delete), stop", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2188,6 +2568,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + "flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())", + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -2198,7 +2585,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("capability", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2231,12 +2618,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("tag", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2272,6 +2666,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("retarget", func(t *testing.T) { @@ -2281,7 +2682,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("target, getControllers", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2381,12 +2782,22 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerIssued(id: 4, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r2)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("retarget empty, borrow", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2421,12 +2832,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + "flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)", + }, + nonDeploymentEventStrings(events), + ) }) t.Run("retarget to value with same type, borrow", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2464,12 +2882,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("retarget to value with different type, borrow", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2505,6 +2930,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -2515,7 +2947,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("getController, getControllers", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2550,12 +2982,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("target", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2581,12 +3020,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.ErrorContains(t, err, "controller is deleted") + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("retarget", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2612,12 +3058,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.ErrorContains(t, err, "controller is deleted") + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("delete", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2643,12 +3096,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.ErrorContains(t, err, "controller is deleted") + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("capability set cleared from storage", func(t *testing.T) { t.Parallel() - err, storage := test( + err, storage, events := test( t, // language=cadence ` @@ -2679,12 +3139,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { ) require.Zero(t, storageMap.Count()) + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) + }) t.Run("check, borrow", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2716,6 +3183,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + }, + nonDeploymentEventStrings(events), + ) }) }) @@ -2728,7 +3202,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("capability", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2757,12 +3231,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("tag", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2794,6 +3275,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("delete", func(t *testing.T) { @@ -2803,7 +3291,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("getController, getControllers", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2834,12 +3322,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("delete", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2861,12 +3356,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.ErrorContains(t, err, "controller is deleted") + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) t.Run("check, borrow", func(t *testing.T) { t.Parallel() - err, _ := test( + err, _, events := test( t, // language=cadence ` @@ -2892,12 +3394,33 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `, ) require.NoError(t, err) + + require.Equal(t, + []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + }, + nonDeploymentEventStrings(events), + ) }) }) }) } +func nonDeploymentEventStrings(events []cadence.Event) []string { + accountContractAddedEventTypeID := stdlib.AccountContractAddedEventType.ID() + + strings := make([]string, 0, len(events)) + for _, event := range events { + // Skip deployment events, i.e. contract added to account + if common.TypeID(event.Type().ID()) == accountContractAddedEventTypeID { + continue + } + strings = append(strings, event.String()) + } + return strings +} + func TestRuntimeCapabilityBorrowAsInheritedInterface(t *testing.T) { t.Parallel() diff --git a/runtime/convertValues_test.go b/runtime/convertValues_test.go index 25848d3db1..56bd73e2d8 100644 --- a/runtime/convertValues_test.go +++ b/runtime/convertValues_test.go @@ -1884,6 +1884,8 @@ func TestRuntimeExportReferenceValue(t *testing.T) { address, err := common.HexToAddress("0x1") require.NoError(t, err) + var events []cadence.Event + runtimeInterface := &TestRuntimeInterface{ Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { @@ -1891,6 +1893,10 @@ func TestRuntimeExportReferenceValue(t *testing.T) { address, }, nil }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, } // Act diff --git a/runtime/environment.go b/runtime/environment.go index d38f8f76e1..3214eb8692 100644 --- a/runtime/environment.go +++ b/runtime/environment.go @@ -377,11 +377,11 @@ func (e *interpreterEnvironment) EmitEvent( values []interpreter.Value, locationRange interpreter.LocationRange, ) { - emitEventFields( + EmitEventFields( inter, locationRange, eventType, - newExportableValues(inter, values), + values, e.runtimeInterface.EmitEvent, ) } diff --git a/runtime/events.go b/runtime/events.go index b6badb393f..9d0deaa6dc 100644 --- a/runtime/events.go +++ b/runtime/events.go @@ -20,7 +20,6 @@ package runtime import ( "github.com/onflow/cadence" - "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/sema" @@ -33,21 +32,27 @@ func emitEventValue( event *interpreter.CompositeValue, emitEvent func(cadence.Event) error, ) { - fields := make([]exportableValue, len(eventType.ConstructorParameters)) + fields := make([]interpreter.Value, len(eventType.ConstructorParameters)) for i, parameter := range eventType.ConstructorParameters { value := event.GetField(inter, locationRange, parameter.Identifier) - fields[i] = newExportableValue(value, inter) + fields[i] = value } - emitEventFields(inter, locationRange, eventType, fields, emitEvent) + EmitEventFields( + inter, + locationRange, + eventType, + fields, + emitEvent, + ) } -func emitEventFields( - gauge common.MemoryGauge, +func EmitEventFields( + inter *interpreter.Interpreter, locationRange interpreter.LocationRange, eventType *sema.CompositeType, - eventFields []exportableValue, + eventFields []interpreter.Value, emitEvent func(cadence.Event) error, ) { actualLen := len(eventFields) @@ -62,13 +67,18 @@ func emitEventFields( )) } + exportableEventFields := make([]exportableValue, len(eventFields)) + for i, field := range eventFields { + exportableEventFields[i] = newExportableValue(field, inter) + } + eventValue := exportableEvent{ Type: eventType, - Fields: eventFields, + Fields: exportableEventFields, } exportedEvent, err := exportEvent( - gauge, + inter, eventValue, locationRange, seenReferences{}, diff --git a/runtime/inbox_test.go b/runtime/inbox_test.go index 3360d4f812..fa11bdcdd7 100644 --- a/runtime/inbox_test.go +++ b/runtime/inbox_test.go @@ -19,6 +19,7 @@ package runtime_test import ( + "fmt" "strings" "testing" @@ -114,6 +115,7 @@ func TestRuntimeAccountInboxPublishUnpublish(t *testing.T) { require.Equal(t, []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, `flow.InboxValueUnpublished(provider: 0x0000000000000001, name: "foo")`, }, @@ -194,6 +196,7 @@ func TestRuntimeAccountInboxUnpublishWrongType(t *testing.T) { require.Equal(t, []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, }, events, @@ -283,6 +286,7 @@ func TestRuntimeAccountInboxUnpublishAbsent(t *testing.T) { require.Equal(t, []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, }, events, @@ -388,12 +392,15 @@ func TestRuntimeAccountInboxUnpublishRemove(t *testing.T) { require.Equal(t, []string{ - `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: ` + - nameArgument.String() + - `, type: Type>())`, - `flow.InboxValueUnpublished(provider: 0x0000000000000001, name: ` + - nameArgument.String() + - `)`, + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, + fmt.Sprintf( + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: %s, type: Type>())`, + nameArgument.String(), + ), + fmt.Sprintf( + `flow.InboxValueUnpublished(provider: 0x0000000000000001, name: %s)`, + nameArgument.String(), + ), }, events, ) @@ -523,6 +530,7 @@ func TestRuntimeAccountInboxUnpublishWrongAccount(t *testing.T) { require.Equal(t, []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, `flow.InboxValueUnpublished(provider: 0x0000000000000001, name: "foo")`, }, @@ -632,6 +640,7 @@ func TestRuntimeAccountInboxPublishClaim(t *testing.T) { require.Equal(t, []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, `flow.InboxValueClaimed(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo")`, }, @@ -734,6 +743,7 @@ func TestRuntimeAccountInboxPublishClaimWrongType(t *testing.T) { require.Equal(t, []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, }, events, @@ -836,6 +846,7 @@ func TestRuntimeAccountInboxPublishClaimWrongName(t *testing.T) { require.Equal(t, []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, }, events, @@ -962,6 +973,7 @@ func TestRuntimeAccountInboxPublishClaimRemove(t *testing.T) { require.Equal(t, []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, `flow.InboxValueClaimed(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo")`, }, @@ -1103,6 +1115,7 @@ func TestRuntimeAccountInboxPublishClaimWrongAccount(t *testing.T) { require.Equal(t, []string{ + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&[Int]>(), path: /storage/foo)`, `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, `flow.InboxValueClaimed(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo")`, }, diff --git a/runtime/runtime_test.go b/runtime/runtime_test.go index c115cfaa7d..09c9667a6d 100644 --- a/runtime/runtime_test.go +++ b/runtime/runtime_test.go @@ -1388,6 +1388,7 @@ func TestRuntimeStorageMultipleTransactionsResourceWithArray(t *testing.T) { `) var loggedMessages []string + var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ OnGetCode: func(location Location) (bytes []byte, err error) { @@ -1405,6 +1406,10 @@ func TestRuntimeStorageMultipleTransactionsResourceWithArray(t *testing.T) { OnProgramLog: func(message string) { loggedMessages = append(loggedMessages, message) }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, } nextTransactionLocation := NewTransactionLocationGenerator() @@ -1908,6 +1913,7 @@ func TestRuntimeResourceContractUseThroughLink(t *testing.T) { `) var loggedMessages []string + var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ OnGetCode: func(location Location) (bytes []byte, err error) { @@ -1925,6 +1931,10 @@ func TestRuntimeResourceContractUseThroughLink(t *testing.T) { OnProgramLog: func(message string) { loggedMessages = append(loggedMessages, message) }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, } nextTransactionLocation := NewTransactionLocationGenerator() @@ -2010,6 +2020,7 @@ func TestRuntimeResourceContractWithInterface(t *testing.T) { `) var loggedMessages []string + var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ OnGetCode: func(location Location) (bytes []byte, err error) { @@ -2029,6 +2040,10 @@ func TestRuntimeResourceContractWithInterface(t *testing.T) { OnProgramLog: func(message string) { loggedMessages = append(loggedMessages, message) }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, } nextTransactionLocation := NewTransactionLocationGenerator() @@ -2587,6 +2602,7 @@ func TestRuntimeAccountPublishAndAccess(t *testing.T) { ) var loggedMessages []string + var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ OnGetCode: func(location Location) ([]byte, error) { @@ -2604,6 +2620,10 @@ func TestRuntimeAccountPublishAndAccess(t *testing.T) { OnProgramLog: func(message string) { loggedMessages = append(loggedMessages, message) }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, } nextTransactionLocation := NewTransactionLocationGenerator() diff --git a/runtime/stdlib/account.go b/runtime/stdlib/account.go index 02f36b683f..e2329e84a5 100644 --- a/runtime/stdlib/account.go +++ b/runtime/stdlib/account.go @@ -84,6 +84,11 @@ type StorageCommitter interface { CommitStorageTemporarily(inter *interpreter.Interpreter) error } +type CapabilityControllerIssueHandler interface { + EventEmitter + AccountIDGenerator +} + type AccountHandler interface { AccountIDGenerator BalanceProvider @@ -2260,7 +2265,7 @@ func CodeToHashValue(inter *interpreter.Interpreter, code []byte) *interpreter.A func newAccountStorageCapabilitiesValue( inter *interpreter.Interpreter, - accountIDGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, ) interpreter.Value { return interpreter.NewAccountStorageCapabilitiesValue( @@ -2269,14 +2274,14 @@ func newAccountStorageCapabilitiesValue( newAccountStorageCapabilitiesGetControllerFunction(inter, addressValue), newAccountStorageCapabilitiesGetControllersFunction(inter, addressValue), newAccountStorageCapabilitiesForEachControllerFunction(inter, addressValue), - newAccountStorageCapabilitiesIssueFunction(inter, accountIDGenerator, addressValue), - newAccountStorageCapabilitiesIssueWithTypeFunction(inter, accountIDGenerator, addressValue), + newAccountStorageCapabilitiesIssueFunction(inter, handler, addressValue), + newAccountStorageCapabilitiesIssueWithTypeFunction(inter, handler, addressValue), ) } func newAccountAccountCapabilitiesValue( inter *interpreter.Interpreter, - accountIDGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, ) interpreter.Value { accountCapabilities := interpreter.NewAccountAccountCapabilitiesValue( @@ -2285,8 +2290,8 @@ func newAccountAccountCapabilitiesValue( newAccountAccountCapabilitiesGetControllerFunction(inter, addressValue), newAccountAccountCapabilitiesGetControllersFunction(inter, addressValue), newAccountAccountCapabilitiesForEachControllerFunction(inter, addressValue), - newAccountAccountCapabilitiesIssueFunction(inter, accountIDGenerator, addressValue), - newAccountAccountCapabilitiesIssueWithTypeFunction(inter, accountIDGenerator, addressValue), + newAccountAccountCapabilitiesIssueFunction(inter, handler, addressValue), + newAccountAccountCapabilitiesIssueWithTypeFunction(inter, handler, addressValue), ) return accountCapabilities @@ -2294,7 +2299,7 @@ func newAccountAccountCapabilitiesValue( func newAccountCapabilitiesValue( inter *interpreter.Interpreter, - idGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, ) interpreter.Value { return interpreter.NewAccountCapabilitiesValue( @@ -2308,14 +2313,14 @@ func newAccountCapabilitiesValue( func() interpreter.Value { return newAccountStorageCapabilitiesValue( inter, - idGenerator, + handler, addressValue, ) }, func() interpreter.Value { return newAccountAccountCapabilitiesValue( inter, - idGenerator, + handler, addressValue, ) }, @@ -2542,7 +2547,7 @@ func newAccountStorageCapabilitiesForEachControllerFunction( func newAccountStorageCapabilitiesIssueFunction( inter *interpreter.Interpreter, - idGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, ) interpreter.BoundFunctionGenerator { return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { @@ -2573,7 +2578,7 @@ func newAccountStorageCapabilitiesIssueFunction( return checkAndIssueStorageCapabilityControllerWithType( inter, locationRange, - idGenerator, + handler, address, targetPathValue, ty, @@ -2585,7 +2590,7 @@ func newAccountStorageCapabilitiesIssueFunction( func newAccountStorageCapabilitiesIssueWithTypeFunction( inter *interpreter.Interpreter, - idGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, ) interpreter.BoundFunctionGenerator { return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { @@ -2623,7 +2628,7 @@ func newAccountStorageCapabilitiesIssueWithTypeFunction( return checkAndIssueStorageCapabilityControllerWithType( inter, locationRange, - idGenerator, + handler, address, targetPathValue, ty, @@ -2636,7 +2641,7 @@ func newAccountStorageCapabilitiesIssueWithTypeFunction( func checkAndIssueStorageCapabilityControllerWithType( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, - idGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, address common.Address, targetPathValue interpreter.PathValue, ty sema.Type, @@ -2656,7 +2661,7 @@ func checkAndIssueStorageCapabilityControllerWithType( capabilityIDValue, borrowStaticType := IssueStorageCapabilityController( inter, locationRange, - idGenerator, + handler, address, borrowType, targetPathValue, @@ -2679,7 +2684,7 @@ func checkAndIssueStorageCapabilityControllerWithType( func IssueStorageCapabilityController( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, - idGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, address common.Address, borrowType *sema.ReferenceType, targetPathValue interpreter.PathValue, @@ -2687,6 +2692,13 @@ func IssueStorageCapabilityController( interpreter.UInt64Value, *interpreter.ReferenceStaticType, ) { + if targetPathValue.Domain != common.PathDomainStorage { + panic(errors.NewDefaultUserError( + "invalid storage capability target path domain: %s", + targetPathValue.Domain.Identifier(), + )) + } + // Create and write StorageCapabilityController borrowStaticType := interpreter.ConvertSemaReferenceTypeToStaticReferenceType(inter, borrowType) @@ -2694,7 +2706,7 @@ func IssueStorageCapabilityController( var capabilityID uint64 var err error errors.WrapPanic(func() { - capabilityID, err = idGenerator.GenerateAccountID(address) + capabilityID, err = handler.GenerateAccountID(address) }) if err != nil { panic(interpreter.WrappedExternalError(err)) @@ -2715,12 +2727,27 @@ func IssueStorageCapabilityController( storeCapabilityController(inter, address, capabilityIDValue, controller) recordStorageCapabilityController(inter, locationRange, address, targetPathValue, capabilityIDValue) + addressValue := interpreter.AddressValue(address) + typeValue := interpreter.NewTypeValue(inter, borrowStaticType) + + handler.EmitEvent( + inter, + StorageCapabilityControllerIssuedEventType, + []interpreter.Value{ + capabilityIDValue, + addressValue, + typeValue, + targetPathValue, + }, + locationRange, + ) + return capabilityIDValue, borrowStaticType } func newAccountAccountCapabilitiesIssueFunction( inter *interpreter.Interpreter, - idGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, ) interpreter.BoundFunctionGenerator { return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { @@ -2744,7 +2771,7 @@ func newAccountAccountCapabilitiesIssueFunction( return checkAndIssueAccountCapabilityControllerWithType( inter, locationRange, - idGenerator, + handler, address, ty, ) @@ -2755,7 +2782,7 @@ func newAccountAccountCapabilitiesIssueFunction( func newAccountAccountCapabilitiesIssueWithTypeFunction( inter *interpreter.Interpreter, - idGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, ) interpreter.BoundFunctionGenerator { return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { @@ -2786,7 +2813,7 @@ func newAccountAccountCapabilitiesIssueWithTypeFunction( return checkAndIssueAccountCapabilityControllerWithType( inter, locationRange, - idGenerator, + handler, address, ty, ) @@ -2798,7 +2825,7 @@ func newAccountAccountCapabilitiesIssueWithTypeFunction( func checkAndIssueAccountCapabilityControllerWithType( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, - idGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, address common.Address, ty sema.Type, ) *interpreter.IDCapabilityValue { @@ -2825,7 +2852,7 @@ func checkAndIssueAccountCapabilityControllerWithType( IssueAccountCapabilityController( inter, locationRange, - idGenerator, + handler, address, borrowType, ) @@ -2847,7 +2874,7 @@ func checkAndIssueAccountCapabilityControllerWithType( func IssueAccountCapabilityController( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, - idGenerator AccountIDGenerator, + handler CapabilityControllerIssueHandler, address common.Address, borrowType *sema.ReferenceType, ) ( @@ -2861,7 +2888,7 @@ func IssueAccountCapabilityController( var capabilityID uint64 var err error errors.WrapPanic(func() { - capabilityID, err = idGenerator.GenerateAccountID(address) + capabilityID, err = handler.GenerateAccountID(address) }) if err != nil { panic(interpreter.WrappedExternalError(err)) @@ -2886,6 +2913,20 @@ func IssueAccountCapabilityController( capabilityIDValue, ) + addressValue := interpreter.AddressValue(address) + typeValue := interpreter.NewTypeValue(inter, borrowStaticType) + + handler.EmitEvent( + inter, + AccountCapabilityControllerIssuedEventType, + []interpreter.Value{ + capabilityIDValue, + addressValue, + typeValue, + }, + locationRange, + ) + return capabilityIDValue, borrowStaticType } diff --git a/runtime/stdlib/flow.go b/runtime/stdlib/flow.go index b7d34e42d1..6478378ad7 100644 --- a/runtime/stdlib/flow.go +++ b/runtime/stdlib/flow.go @@ -305,3 +305,36 @@ var AccountInboxClaimedEventType = newFlowEventType( AccountEventRecipientParameter, AccountEventNameParameter, ) + +var CapabilityControllerEventIDParameter = sema.Parameter{ + Identifier: "id", + TypeAnnotation: sema.UInt64TypeAnnotation, +} + +var CapabilityControllerEventAddressParameter = sema.Parameter{ + Identifier: "address", + TypeAnnotation: sema.AddressTypeAnnotation, +} + +var CapabilityControllerEventTypeParameter = sema.Parameter{ + Identifier: "type", + TypeAnnotation: sema.MetaTypeAnnotation, +} + +var StorageCapabilityControllerIssuedEventType = newFlowEventType( + "StorageCapabilityControllerIssued", + CapabilityControllerEventIDParameter, + CapabilityControllerEventAddressParameter, + CapabilityControllerEventTypeParameter, + sema.Parameter{ + Identifier: "path", + TypeAnnotation: sema.StoragePathTypeAnnotation, + }, +) + +var AccountCapabilityControllerIssuedEventType = newFlowEventType( + "AccountCapabilityControllerIssued", + CapabilityControllerEventIDParameter, + CapabilityControllerEventAddressParameter, + CapabilityControllerEventTypeParameter, +) diff --git a/runtime/storage_test.go b/runtime/storage_test.go index 053cd50cdc..4cf9a572dc 100644 --- a/runtime/storage_test.go +++ b/runtime/storage_test.go @@ -401,11 +401,17 @@ func TestRuntimeStorageReadAndBorrow(t *testing.T) { signer := common.MustBytesToAddress([]byte{0x42}) + var events []cadence.Event + runtimeInterface := &TestRuntimeInterface{ Storage: storage, OnGetSigningAccounts: func() ([]Address, error) { return []Address{signer}, nil }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, } nextTransactionLocation := NewTransactionLocationGenerator() @@ -1048,11 +1054,17 @@ func TestRuntimeStoragePublishAndUnpublish(t *testing.T) { signer := common.MustBytesToAddress([]byte{0x42}) + var events []cadence.Event + runtimeInterface := &TestRuntimeInterface{ Storage: storage, OnGetSigningAccounts: func() ([]Address, error) { return []Address{signer}, nil }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, } nextTransactionLocation := NewTransactionLocationGenerator() @@ -1132,11 +1144,17 @@ func TestRuntimeStorageSaveCapability(t *testing.T) { signer := common.MustBytesToAddress([]byte{0x42}) + var events []cadence.Event + runtimeInterface := &TestRuntimeInterface{ Storage: storage, OnGetSigningAccounts: func() ([]Address, error) { return []Address{signer}, nil }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, } nextTransactionLocation := NewTransactionLocationGenerator() From 175f97dc8a105fe5b1c19864366d0c8d666a774e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Wed, 10 Jul 2024 16:06:51 -0700 Subject: [PATCH 10/17] fix account link migration --- migrations/capcons/capabilitymigration.go | 5 - migrations/capcons/linkmigration.go | 11 +- migrations/capcons/migration_test.go | 196 ++++++++++++++++++++-- 3 files changed, 190 insertions(+), 22 deletions(-) diff --git a/migrations/capcons/capabilitymigration.go b/migrations/capcons/capabilitymigration.go index 79fa88fd9f..e81b09cd58 100644 --- a/migrations/capcons/capabilitymigration.go +++ b/migrations/capcons/capabilitymigration.go @@ -108,11 +108,6 @@ func (m *CapabilityValueMigration) Migrate( 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, diff --git a/migrations/capcons/linkmigration.go b/migrations/capcons/linkmigration.go index 4dff48cbe6..9c041a5406 100644 --- a/migrations/capcons/linkmigration.go +++ b/migrations/capcons/linkmigration.go @@ -237,10 +237,10 @@ func storageKeyToPathValue( return interpreter.NewUnmeteredPathValue(domain, identifier), true } -var authAccountReferenceStaticType = interpreter.NewReferenceStaticType( +var unauthorizedAccountReferenceStaticType = interpreter.NewReferenceStaticType( nil, interpreter.UnauthorizedAccess, - interpreter.PrimitiveStaticTypeAuthAccount, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAccount, ) func (m *LinkValueMigration) getPathCapabilityFinalTarget( @@ -309,10 +309,9 @@ func (m *LinkValueMigration) getPathCapabilityFinalTarget( pathValue = targetPath case interpreter.AccountLinkValue: //nolint:staticcheck - if !inter.IsSubTypeOfSemaType( - authAccountReferenceStaticType, - wantedBorrowType, - ) { + allowedType := unauthorizedAccountReferenceStaticType + + if !inter.IsSubTypeOfSemaType(allowedType, wantedBorrowType) { return nil, interpreter.UnauthorizedAccess, nil } diff --git a/migrations/capcons/migration_test.go b/migrations/capcons/migration_test.go index d479af6b6e..0446cb4961 100644 --- a/migrations/capcons/migration_test.go +++ b/migrations/capcons/migration_test.go @@ -1065,10 +1065,61 @@ func TestPathCapabilityValueMigration(t *testing.T) { expectedEvents: []string{}, }, { - name: "Account link, working chain (public)", - // Equivalent to: getCapability<&AuthAccount>(/public/test) + name: "Account link, working chain (public), unauthorized", + // Equivalent to: getCapability<&Account>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: unauthorizedAccountReferenceStaticType, + 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: unauthorizedAccountReferenceStaticType, + }, + }, + expectedEvents: []string{ + "flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type())", + }, + }, + { + name: "Account link, working chain (public), authorized", + // Equivalent to: getCapability(/public/test) capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck - BorrowType: authAccountReferenceStaticType, + BorrowType: interpreter.NewReferenceStaticType( + nil, + interpreter.FullyEntitledAccountAccess, + interpreter.PrimitiveStaticTypeAccount, + ), Path: interpreter.PathValue{ Domain: common.PathDomainPublic, Identifier: testPathIdentifier, @@ -1112,10 +1163,57 @@ func TestPathCapabilityValueMigration(t *testing.T) { }, }, { - name: "Account link, working chain (private)", - // Equivalent to: getCapability<&AuthAccount>(/public/test) + name: "Account link, working chain (private), unauthorized", + // Equivalent to: getCapability<&Account>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: unauthorizedAccountReferenceStaticType, + 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: unauthorizedAccountReferenceStaticType, + }, + }, + expectedEvents: []string{ + "flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type())", + }, + }, + { + name: "Account link, working chain (private), authorized", + // Equivalent to: getCapability(/public/test) capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck - BorrowType: authAccountReferenceStaticType, + BorrowType: fullyEntitledAccountReferenceStaticType, Path: interpreter.PathValue{ Domain: common.PathDomainPrivate, Identifier: testPathIdentifier, @@ -1857,10 +1955,83 @@ func TestLinkMigration(t *testing.T) { }, }, { - name: "Account link, working chain (public -> private)", + name: "Account link, working chain (public -> private), unauthorized", + pathLinks: []testLink{ + // Equivalent to: + // link<&Account>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: unauthorizedAccountReferenceStaticType, + }, + }, + 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, + }, + }, + expectedEvents: []string{ + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&Account>())`, + }, + }, + { + name: "Account link, working chain (public -> private), authorized", pathLinks: []testLink{ // Equivalent to: - // link<&AuthAccount>(/public/test, target: /private/test) + // link( + // /public/test, + // target: /private/test + // ) { sourcePath: interpreter.PathValue{ Domain: common.PathDomainPublic, @@ -1870,7 +2041,11 @@ func TestLinkMigration(t *testing.T) { Domain: common.PathDomainPrivate, Identifier: testPathIdentifier, }, - borrowType: authAccountReferenceStaticType, + borrowType: interpreter.NewReferenceStaticType( + nil, + interpreter.FullyEntitledAccountAccess, + interpreter.PrimitiveStaticTypeAccount, + ), }, }, accountLinks: []interpreter.PathValue{ @@ -1923,8 +2098,7 @@ func TestLinkMigration(t *testing.T) { }, expectedEvents: []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type())`, - // TODO: fix type - `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&auth(Capabilities,Contracts,Inbox,Keys,Storage)&Account>())`, + `flow.AccountCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type())`, }, }, } From cafa40d3fb2bcb92e1d3d99c89ec355da94dba65 Mon Sep 17 00:00:00 2001 From: "Leo Zhang (zhangchiqing)" Date: Wed, 10 Jul 2024 18:38:27 -0700 Subject: [PATCH 11/17] add staged contracts report 07-10 --- ...s-report-2024-07-10T10-00-00Z-testnet.json | 1 + ...cts-report-2024-07-10T10-00-00Z-testnet.md | 758 ++++++++++++++++++ 2 files changed, 759 insertions(+) create mode 100644 migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.json create mode 100644 migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.md diff --git a/migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.json new file mode 100644 index 0000000000..0b2c5d4fb3 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-07-10T10-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":"CricketMomentsShardedCollection"},{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0x04625c28593d9408","contract_name":"roguebunnies_NFT"},{"kind":"contract-update-success","account_address":"0x04625c28593d9408","contract_name":"ufcInt_NFT"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"Cryptoys"},{"kind":"contract-update-failure","account_address":"0xff68241f0f4fd521","contract_name":"DrSeuss","error":"error: unexpected token: decimal integer\n --\u003e ff68241f0f4fd521.DrSeuss:1:0\n |\n1 | 2f2a2a2f0a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274205469626c65734170702066726f6d203078653933633431326339363462646634300a696d706f7274205469626c65734e46542066726f6d203078653933633431326339363462646634300a696d706f7274205469626c657350726f64756365722066726f6d... \n | ^\n"},{"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":"CryptoysMetadataView2"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"ICryptoys"},{"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":"0x8c55fba7d7090fee","contract_name":"Magnetiq"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"MagnetiqLocking"},{"kind":"contract-update-success","account_address":"0x2d766f00eb1d0c37","contract_name":"PriceOracle"},{"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":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter"},{"kind":"contract-update-success","account_address":"0x723a1b50e1d67e8e","contract_name":"TuneGONFT"},{"kind":"contract-update-success","account_address":"0xc3e5d63b6b43935a","contract_name":"rodman_NFT"},{"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":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-success","account_address":"0x8aaca41f09eb1e3d","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x94b84d0c11a22404","contract_name":"TopShotShardedCollection"},{"kind":"contract-update-success","account_address":"0xcc4e949596cf8ced","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"ETHUtils"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"EVMAgent"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FGameLottery"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FGameLotteryFactory"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FGameLotteryRegistry"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20AccountsPool"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20Agents"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20Converter"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20FTShared"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20FungibleToken"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20Indexer"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20MarketManager"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20Marketplace"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20NFTWrapper"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20SemiNFT"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20Staking"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20StakingForwarder"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20StakingManager"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20StakingVesting"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20Storefront"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20TradingRecord"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20VoteCommands"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FRC20Votes"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"Fixes"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesAssetMeta"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesAvatar"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesBondingCurve"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesFungibleToken"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesFungibleTokenInterface"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesHeartbeat"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesInscriptionFactory"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesTokenAirDrops"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesTokenLockDrops"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesTradablePool"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesTraits"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FixesWrappedNFT"},{"kind":"contract-update-success","account_address":"0x0e11cd1707e0843b","contract_name":"FungibleTokenManager"},{"kind":"contract-update-success","account_address":"0xd9c02cdacccb25ab","contract_name":"FlowtyTestNFT"},{"kind":"contract-update-success","account_address":"0xe8124d8428980aa6","contract_name":"Bl0x"},{"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\nerror: mismatched types\n --\u003e b39a42479c1c2c77.AFLAdmin:23:50\n |\n23 | let templateRef: \u0026AFLNFT.Template? = \u0026AFLNFT.allTemplates[templateID]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `AFLNFT.Template?`, got `\u0026AFLNFT.Template?`\n\nerror: cannot create a nested reference to value of type \u0026AFLNFT.Template\n --\u003e b39a42479c1c2c77.AFLAdmin:23:49\n |\n23 | let templateRef: \u0026AFLNFT.Template? = \u0026AFLNFT.allTemplates[templateID]\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":"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":"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":"0x4f7b6c1c7bbd154d","contract_name":"cobrakai_NFT"},{"kind":"contract-update-success","account_address":"0x7269d23221b9f60f","contract_name":"flowpups_NFT"},{"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":"0x195caada038c5806","contract_name":"BarterYardClubWerewolf"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardStats"},{"kind":"contract-update-success","account_address":"0x97d2f3b55c6a6a75","contract_name":"LendingPool"},{"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":"0xf904744ec2f143e0","contract_name":"rodman2_NFT"},{"kind":"contract-update-success","account_address":"0xa63ecf66edb620ef","contract_name":"ZeedzINO"},{"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":"0x6c35f966375845a6","contract_name":"TixologiTickets"},{"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":"0xa1296b1e2e90ca5b","contract_name":"HelloWorld"},{"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":"0x072127280188a611","contract_name":"TestRootContract"},{"kind":"contract-update-success","account_address":"0xd141ec172d90f107","contract_name":"awesomeshop_NFT"},{"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":"0xad26718c4b6b921b","contract_name":"BlackHole"},{"kind":"contract-update-success","account_address":"0xfab4d3ecd35407dd","contract_name":"jontest2_NFT"},{"kind":"contract-update-success","account_address":"0x94b06cfca1d8a476","contract_name":"NFTStorefront"},{"kind":"contract-update-success","account_address":"0x6d692450d591524c","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":"0x547f177b243b4d80","contract_name":"Market"},{"kind":"contract-update-success","account_address":"0x547f177b243b4d80","contract_name":"TopShotMarketV3"},{"kind":"contract-update-success","account_address":"0xcc3f23a0ee7b0549","contract_name":"rodangear_NFT"},{"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":"0x8232ce4a3aff4e94","contract_name":"PublicPriceOracle"},{"kind":"contract-update-success","account_address":"0xf717d62a8ee6ca9d","contract_name":"snails_NFT"},{"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":"0x857dc34d5e1631d3","contract_name":"FLOAT"},{"kind":"contract-update-success","account_address":"0xba50fdf382d82ff6","contract_name":"donkeyparty_NFT"},{"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":"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":"0xb7248baa24a95c3f","contract_name":"ETHUtils"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"EVMAgent"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FGameLottery"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FGameLotteryFactory"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FGameLotteryRegistry"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20AccountsPool"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20Agents"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20Converter"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20FTShared"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20FungibleToken"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20Indexer"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20MarketManager"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20Marketplace"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20NFTWrapper"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20SemiNFT"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20Staking"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20StakingForwarder"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20StakingManager"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20StakingVesting"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20Storefront"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20TradingRecord"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20VoteCommands"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FRC20Votes"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"Fixes"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesAssetMeta"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesAvatar"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesBondingCurve"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesFungibleToken"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesFungibleTokenInterface"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesHeartbeat"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesInscriptionFactory"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesTokenAirDrops"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesTokenLockDrops"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesTradablePool"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesTraits"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FixesWrappedNFT"},{"kind":"contract-update-success","account_address":"0xb7248baa24a95c3f","contract_name":"FungibleTokenManager"},{"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":"0x7dc7430a06f38af3","contract_name":"ZeedzINO"},{"kind":"contract-update-success","account_address":"0xcbdb5a7b89c3c844","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x5b11566d5312c955","contract_name":"stubbysoaps_NFT"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"Flomies"},{"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":"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-success","account_address":"0x23031fd14bb0f21b","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x24650d6246d4176c","contract_name":"PriceOracle"},{"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":"0x4ed4b8e5cd0dd15e","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x6f16b5a358ec0246","contract_name":"otanicloth_NFT"},{"kind":"contract-update-success","account_address":"0x5479ef36515040b8","contract_name":"mooseknuckles_NFT"},{"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":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbieCard"},{"kind":"contract-update-failure","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbiePM","error":"error: mismatched types\n --\u003e 6d0f55821f6b2dbe.BBxBarbiePM:546:15\n |\n546 | return BBxBarbiePack.currentPackEditionIdByPackSeriesId\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `{UInt64: UInt64}`, got `\u0026{UInt64: UInt64}`\n\nerror: mismatched types\n --\u003e 6d0f55821f6b2dbe.BBxBarbiePM:551:15\n |\n551 | return BBxBarbieCard.currentCardEditionIdByPackSeriesId\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `{UInt64: UInt64}`, got `\u0026{UInt64: UInt64}`\n\nerror: mismatched types\n --\u003e 6d0f55821f6b2dbe.BBxBarbiePM:556:15\n |\n556 | return BBxBarbieToken.currentTokenEditionIdByPackSeriesId\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `{UInt64: UInt64}`, got `\u0026{UInt64: UInt64}`\n"},{"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":"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":"0xd704ee8202a0d82d","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0xdad0aaa285a25413","contract_name":"PriceOracle"},{"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":"0x625f49193dcdccfc","contract_name":"FixesFungibleToken"},{"kind":"contract-update-success","account_address":"0x2f8af5ed05bbde0d","contract_name":"SwapRouter"},{"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":"0x469bd223c41cafc8","contract_name":"testingtheflow_NFT"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-success","account_address":"0xc0304ec6065f7610","contract_name":"testshopbonus_NFT"},{"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":"0x2a9011074c827145","contract_name":"FungibleTokenCatalog"},{"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":"0xc20df20fabe06457","contract_name":"SwapPair"},{"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":"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":"0x453418d68eae51c2","contract_name":"micemania_NFT"},{"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":"0xf3e8f8ae2e9e2fec","contract_name":"giglabs_NFT"},{"kind":"contract-update-success","account_address":"0x9e324d8ae3cbd0f0","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x520a7157e1b964ed","contract_name":"ShebaHopeGrows"},{"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":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x2299f74679d9c88a","contract_name":"A"},{"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-failure","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePMV2","error":"error: mismatched types\n --\u003e 6f6702697b205c18.HWGaragePMV2:566:15\n |\n566 | return HWGaragePackV2.currentPackEditionIdByPackSeriesId\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `{UInt64: UInt64}`, got `\u0026{UInt64: UInt64}`\n\nerror: mismatched types\n --\u003e 6f6702697b205c18.HWGaragePMV2:571:15\n |\n571 | return HWGarageCardV2.currentCardEditionIdByPackSeriesId\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `{UInt64: UInt64}`, got `\u0026{UInt64: UInt64}`\n"},{"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":"0x26a1e94319e81a3c","contract_name":"Staking"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"StakingError"},{"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-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":"0x7745157792470296","contract_name":"LendingOracle"},{"kind":"contract-update-success","account_address":"0xc15e75b5f6b95e54","contract_name":"LendingComptroller"},{"kind":"contract-update-success","account_address":"0x628992a07cb07272","contract_name":"MatrixWorldVoucher"},{"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-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":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow"},{"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":"0x2ceae959ed1a7e7a","contract_name":"MigrationContractStaging"},{"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":"0x74daa6f9c7ef24b1","contract_name":"FCLCrypto"},{"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"},{"kind":"contract-update-success","account_address":"0x3b220a3372190656","contract_name":"PriceOracle"},{"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-failure","account_address":"0x566c813b3632783e","contract_name":"CATERPIETKN","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.CATERPIETKN:1:0\n |\n1 | 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"DITTOTKN","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.DITTOTKN:1:0\n |\n1 | 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468... \n | ^\n"},{"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-failure","account_address":"0x566c813b3632783e","contract_name":"EMEM3","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.EMEM3:1:0\n |\n1 | 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468... \n | ^\n"},{"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-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT12DRXRSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT12DRXRSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543132445258525342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT13JAMZSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT13JAMZSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431334a414d5a5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT14ZQPZSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT14ZQPZSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431345a51505a5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT16RJD6SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT16RJD6SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543136524a44365342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT17GAFPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT17GAFPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543137474146505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT18QPKCSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT18QPKCSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154313851504b435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT18XWQCSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT18XWQCSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543138585751435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT19MPNGSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT19MPNGSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431394d504e475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KARAT1AUAXQ"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1AUAXQSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1AUAXQSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543141554158515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1DQP9USBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1DQP9USBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543144515039555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1DYIP3SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1DYIP3SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543144594950335342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1ES83GSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1ES83GSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543145533833475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1F6JVMSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1F6JVMSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543146364a564d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1FANHSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1FANHSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543146414e485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1FUWP9SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1FUWP9SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543146555750395342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1G2PRESBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1G2PRESBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543147325052455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1GQ6SDSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1GQ6SDSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543147513653445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1HYBRVSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1HYBRVSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543148594252565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1KMUIBSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1KMUIBSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314b4d5549425342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1LTABVNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1LTABVNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314c544142564e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1LXN14SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1LXN14SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314c584e31345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1LZJVLSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1LZJVLSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314c5a4a564c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1ONUJBSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1ONUJBSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314f4e554a425342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1OONYHSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1OONYHSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314f4f4e59485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1PPCSMSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1PPCSMSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431505043534d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1PTBTXSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1PTBTXSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543150544254585342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1RZWDUSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1RZWDUSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431525a5744555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1TABR0SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1TABR0SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543154414252305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1TEL5LSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1TEL5LSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543154454c354c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT1XJCIQNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT1XJCIQNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431584a4349514e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT20COKSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT20COKSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543230434f4b5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT23HUMDSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT23HUMDSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154323348554d445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT252AKMSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT252AKMSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154323532414b4d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT26J3L0SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT26J3L0SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432364a334c305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT26MUTRSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT26MUTRSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432364d5554525342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT27UF4KSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT27UF4KSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432375546344b5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT28NQRYSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT28NQRYSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432384e5152595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2AKMF0NFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2AKMF0NFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432414b4d46304e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2AWINFSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2AWINFSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154324157494e465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2BJCQVSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2BJCQVSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432424a4351565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2BXWIMSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2BXWIMSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432425857494d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2CJKIGSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2CJKIGSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432434a4b49475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2DCTUYSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2DCTUYSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543244435455595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2ELVW4SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2ELVW4SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432454c5657345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2HD9GSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2HD9GSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432484439475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2HMNKVSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2HMNKVSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432484d4e4b565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2LVNRANFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2LVNRANFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154324c564e52414e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2NI8C7SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2NI8C7SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154324e493843375342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2OJKLTSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2OJKLTSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154324f4a4b4c545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2SFG0LSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2SFG0LSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432534647304c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2SQDLYSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2SQDLYSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154325351444c595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2UUOFVSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2UUOFVSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543255554f46565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2V3VG3SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2V3VG3SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543256335647335342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT2WIHCDSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT2WIHCDSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543257494843445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT52HJUSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT52HJUSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543532484a555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT5IDA7SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT5IDA7SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415435494441375342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARAT9HSUSSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARAT9HSUSSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415439485355535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATAQTC7SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATAQTC7SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415441515443375342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATAQXBQSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATAQXBQSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415441515842515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATB5PGKSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATB5PGKSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154423550474b5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATB8JTVSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATB8JTVSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415442384a54565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATE3JILSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATE3JILSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415445334a494c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATEFTJFSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATEFTJFSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544546544a465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATEG1M9SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATEG1M9SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544547314d395342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATES6E9SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATES6E9SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415445533645395342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATF8LTGSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATF8LTGSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415446384c54475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATFEXIQSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATFEXIQSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415446455849515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATFRCRSSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATFRCRSSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415446524352535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATGWDWT1NFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATGWDWT1NFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544757445754314e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATGWDWTSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATGWDWTSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415447574457545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATH3GEESBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATH3GEESBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415448334745455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATIKUDSSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATIKUDSSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154494b5544535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATJKH5ISBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATJKH5ISBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544a4b4835495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATJSHFGSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATJSHFGSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544a534846475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATKDRXPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATKDRXPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544b445258505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATKPA18SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATKPA18SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544b504131385342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATLHFGQSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATLHFGQSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544c484647515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATLK2R1NFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATLK2R1NFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544c4b3252314e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATLOL","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATLOL:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544c4f4c3a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365737328616c6c29... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATLOL2","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATLOL2:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544c4f4c323a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365737328616c6c... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATMKMRJSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATMKMRJSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544d4b4d524a5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATNY9VTSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATNY9VTSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544e593956545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATOA9DYSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATOA9DYSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544f413944595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATOIVZPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATOIVZPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544f49565a505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATOKORCSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATOKORCSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544f4b4f52435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATPRN1PSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATPRN1PSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415450524e31505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATPRR1ONFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATPRR1ONFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154505252314f4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATPRYCUSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATPRYCUSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415450525943555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATQE2C2SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATQE2C2SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415451453243325342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATTNILESBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATTNILESBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154544e494c455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATTUVLHSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATTUVLHSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545455564c485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATU4S5PSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATU4S5PSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415455345335505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATUTMICSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATUTMICSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415455544d49435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATUUFMPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATUUFMPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545555464d505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATWLUYPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATWLUYPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154574c5559505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATXBMOFSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATXBMOFSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415458424d4f465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATXGJJDNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATXGJJDNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415458474a4a444e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATYFEQUSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATYFEQUSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415459464551555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATYWPIPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATYWPIPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415459575049505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ10JY4HSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ10JY4HSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31304a5934485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ11QDVTSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ11QDVTSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3131514456545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ125ABNSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ125ABNSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31323541424e5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ13GTLHNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ13GTLHNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a313347544c484e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ13T8OZNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ13T8OZNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a313354384f5a4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ15WNYISBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ15WNYISBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3135574e59495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ19N3FQSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ19N3FQSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31394e3346515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1A0XH1SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1A0XH1SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3141305848315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1AA4HISBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1AA4HISBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3141413448495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1AALK1SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1AALK1SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3141414c4b315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1B8E9PSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1B8E9PSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3142384539505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1BJUJMNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1BJUJMNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31424a554a4d4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1BQDZOSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1BQDZOSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314251445a4f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1CUFLRSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1CUFLRSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314355464c525342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1FJB9FSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1FJB9FSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31464a4239465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1G2JHBNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1G2JHBNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3147324a48424e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1GNJJ4SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1GNJJ4SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31474e4a4a345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1I0UTPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1I0UTPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3149305554505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1JDPJUSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1JDPJUSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314a44504a555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1JI8RPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1JI8RPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314a493852505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1KNY61SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1KNY61SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314b4e5936315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1LIIMOSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1LIIMOSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314c49494d4f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1LUMBISBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1LUMBISBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314c554d42495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1MAOBYSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1MAOBYSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314d414f42595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1TV38DSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1TV38DSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3154563338445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1UNG6K","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1UNG6K:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31554e47364b3a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365737328... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1UNG6KNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1UNG6KNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31554e47364b4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1VJSQOSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1VJSQOSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31564a53514f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1WAPOUSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1WAPOUSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a315741504f555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1WWEDISBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1WWEDISBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3157574544495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1WWXKESBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1WWXKESBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a315757584b455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1X06RBSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1X06RBSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3158303652425342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1X8QFCSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1X8QFCSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3158385146435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1YCJBSSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1YCJBSSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3159434a42535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1YWAWH","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1YWAWH:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3159574157483a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365737328... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ1YWAWHSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ1YWAWHSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3159574157485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ20PLNMSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ20PLNMSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3230504c4e4d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ20UWQ1SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ20UWQ1SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3230555751315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ24XF6ASBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ24XF6ASBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3234584636415342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ25MPUQSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ25MPUQSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32354d5055515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ25SSGFSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ25SSGFSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3235535347465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2645X8SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2645X8SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3236343558385342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ28OH4ISBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ28OH4ISBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32384f4834495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ28SMRXNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ28SMRXNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3238534d52584e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ294IQPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ294IQPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3239344951505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ29BXHESBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ29BXHESBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3239425848455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2C1CCESBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2C1CCESBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3243314343455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2DKFO4SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2DKFO4SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32444b464f345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2F8FPUSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2F8FPUSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3246384650555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2FSSJGSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2FSSJGSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a324653534a475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2L0Y20SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2L0Y20SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a324c305932305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2LKM3NNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2LKM3NNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a324c4b4d334e4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2NG47PSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2NG47PSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a324e473437505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2PATCTSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2PATCTSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3250415443545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2PHCV0SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2PHCV0SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3250484356305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2QW6XOSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2QW6XOSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32515736584f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2R7N6PSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2R7N6PSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3252374e36505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2UKA8KSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2UKA8KSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32554b41384b5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2UO4KSSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2UO4KSSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32554f344b535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ2VMLQRSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ2VMLQRSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32564d4c51525342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ3EXJTSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ3EXJTSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3345584a545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ5PCPVSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ5PCPVSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a35504350565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ9FEBLSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ9FEBLSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a394645424c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZ9QTKGSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZ9QTKGSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3951544b475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZCALTNSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZCALTNSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a43414c544e5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZCWVWXSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZCWVWXSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a43575657585342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZDCMU1SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZDCMU1SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a44434d55315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZFOPJLSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZFOPJLSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a464f504a4c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZGAEG5SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZGAEG5SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a47414547355342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZGSU0MNFT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZGSU0MNFT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a475355304d4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZITLBOSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZITLBOSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a49544c424f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZJVCVESBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZJVCVESBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4a564356455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZKRGSWSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZKRGSWSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4b524753575342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZKXCSFSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZKXCSFSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4b584353465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZMMUVPSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZMMUVPSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4d4d5556505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZMNAHHSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZMNAHHSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4d4e4148485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZN9X20SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZN9X20SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4e395832305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZQJULGSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZQJULGSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a514a554c475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZRP4V4SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZRP4V4SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a52503456345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZSW2P1SBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZSW2P1SBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a53573250315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZTGW5ESBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZTGW5ESBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a54475735455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZTOT5GSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZTOT5GSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a544f5435475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZTUAMVSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZTUAMVSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a5455414d565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZUHSINSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZUHSINSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a554853494e5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZVBILUSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZVBILUSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a5642494c555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KARATZWZV3DSBT","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.KARATZWZV3DSBT:1:0\n |\n1 | 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a575a5633445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573... \n | ^\n"},{"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-failure","account_address":"0x566c813b3632783e","contract_name":"NOTADMIN7TKN","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.NOTADMIN7TKN:1:0\n |\n1 | 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468... \n | ^\n"},{"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":"0x44ef9309713e2061","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingNFT"},{"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-failure","account_address":"0x566c813b3632783e","contract_name":"T_TEST1130","error":"error: unexpected token: decimal integer\n --\u003e 566c813b3632783e.T_TEST1130:1:0\n |\n1 | 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468... \n | ^\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Z1G2JHB24KARAT"},{"kind":"contract-update-success","account_address":"0x0b3677727d6e6240","contract_name":"FixesFungibleToken"},{"kind":"contract-update-success","account_address":"0x2dcd833119c0570c","contract_name":"toddnewstaging2_NFT"},{"kind":"contract-update-success","account_address":"0x3286bb76e4e115fe","contract_name":"Boneyard"},{"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-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":"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":"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-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":"0xa448a1b60a5e8a14","contract_name":"doorknobs_NFT"},{"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":"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":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"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":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"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":"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":"0xc911d6ddfae70ce8","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x9680721e43087f43","contract_name":"DropTypes"},{"kind":"contract-update-success","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT"},{"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":"0x56d62b3bd3120e7a","contract_name":"FixesFungibleToken"},{"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":"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":"0x668b91e2995c2eba","contract_name":"PrivateReceiverForwarder"},{"kind":"contract-update-success","account_address":"0x9e4362a20d15d952","contract_name":"latestmay3test_NFT"},{"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":"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":"0xdfc20aee650fcbdf","contract_name":"IBridgePermissions"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle"},{"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-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":"0xe7d5fb4c128b85b7","contract_name":"Genies"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.md new file mode 100644 index 0000000000..59b1798680 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.md @@ -0,0 +1,758 @@ +## Cadence 1.0 staged contracts migration results +Date: 10 July, 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: 725 contracts staged, 503 successfully upgraded, 222 failed to upgrade (4 failed with FiatToken) +* Testnet State Snapshot: devnet50-execution--us-central1-b-20240710160339-r2jiewxf +* Flow-go build: v0.35.17-crescendo-preview.31-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/) + +## Root Block +``` +Height: 200582840 +ID: TBD +ParentID: 8ad2f366017386c5a0da3b1efe0e5e4de5931f90eaf942ac76afbdbe727029c2 +State Commitment: cb2714aede812fa8b66fee3e0f67882178d30a1c056cb642631d10ad054f5a71 +``` + +## Migration Report + + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0x34f3140b7f54c743 | CricketMoments | ✅ | +| 0x34f3140b7f54c743 | CricketMomentsShardedCollection | ✅ | +| 0x34f3140b7f54c743 | FazeUtilityCoin | ✅ | +| 0x04625c28593d9408 | roguebunnies_NFT | ✅ | +| 0x04625c28593d9408 | ufcInt_NFT | ✅ | +| 0x6b7930acbcd12877 | Cryptoys | ✅ | +| 0xff68241f0f4fd521 | DrSeuss | ❌

Error:
error: unexpected token: decimal integer
--\> ff68241f0f4fd521.DrSeuss:1:0
\|
1 \| 2f2a2a2f0a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274205469626c65734170702066726f6d203078653933633431326339363462646634300a696d706f7274205469626c65734e46542066726f6d203078653933633431326339363462646634300a696d706f7274205469626c657350726f64756365722066726f6d...
\| ^
| +| 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 | CryptoysMetadataView2 | ✅ | +| 0x6b7930acbcd12877 | ICryptoys | ✅ | +| 0x2d0d952e760d1770 | CricketMoments | ✅ | +| 0x2d0d952e760d1770 | CricketMomentsShardedCollection | ✅ | +| 0x2d0d952e760d1770 | FazeUtilityCoin | ✅ | +| 0x8c55fba7d7090fee | Magnetiq | ✅ | +| 0x8c55fba7d7090fee | MagnetiqLocking | ✅ | +| 0x2d766f00eb1d0c37 | PriceOracle | ✅ | +| 0x894269f57ac04a6e | FlowtyRaffleSource | ✅ | +| 0x894269f57ac04a6e | FlowtyRaffles | ✅ | +| 0xf8ba321af4bd37bb | aiSportsMinter | ✅ | +| 0x723a1b50e1d67e8e | TuneGONFT | ✅ | +| 0xc3e5d63b6b43935a | rodman_NFT | ✅ | +| 0xe45c64ecfe31e465 | DelegatorManager | ✅ | +| 0xe45c64ecfe31e465 | LiquidStaking | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingConfig | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingError | ✅ | +| 0xe45c64ecfe31e465 | stFlowToken | ✅ | +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0x8aaca41f09eb1e3d | LendingPool | ✅ | +| 0x94b84d0c11a22404 | TopShotShardedCollection | ✅ | +| 0xcc4e949596cf8ced | TwoSegmentsInterestRateModel | ✅ | +| 0x0e11cd1707e0843b | ETHUtils | ✅ | +| 0x0e11cd1707e0843b | EVMAgent | ✅ | +| 0x0e11cd1707e0843b | FGameLottery | ✅ | +| 0x0e11cd1707e0843b | FGameLotteryFactory | ✅ | +| 0x0e11cd1707e0843b | FGameLotteryRegistry | ✅ | +| 0x0e11cd1707e0843b | FRC20AccountsPool | ✅ | +| 0x0e11cd1707e0843b | FRC20Agents | ✅ | +| 0x0e11cd1707e0843b | FRC20Converter | ✅ | +| 0x0e11cd1707e0843b | FRC20FTShared | ✅ | +| 0x0e11cd1707e0843b | FRC20FungibleToken | ✅ | +| 0x0e11cd1707e0843b | FRC20Indexer | ✅ | +| 0x0e11cd1707e0843b | FRC20MarketManager | ✅ | +| 0x0e11cd1707e0843b | FRC20Marketplace | ✅ | +| 0x0e11cd1707e0843b | FRC20NFTWrapper | ✅ | +| 0x0e11cd1707e0843b | FRC20SemiNFT | ✅ | +| 0x0e11cd1707e0843b | FRC20Staking | ✅ | +| 0x0e11cd1707e0843b | FRC20StakingForwarder | ✅ | +| 0x0e11cd1707e0843b | FRC20StakingManager | ✅ | +| 0x0e11cd1707e0843b | FRC20StakingVesting | ✅ | +| 0x0e11cd1707e0843b | FRC20Storefront | ✅ | +| 0x0e11cd1707e0843b | FRC20TradingRecord | ✅ | +| 0x0e11cd1707e0843b | FRC20VoteCommands | ✅ | +| 0x0e11cd1707e0843b | FRC20Votes | ✅ | +| 0x0e11cd1707e0843b | Fixes | ✅ | +| 0x0e11cd1707e0843b | FixesAssetMeta | ✅ | +| 0x0e11cd1707e0843b | FixesAvatar | ✅ | +| 0x0e11cd1707e0843b | FixesBondingCurve | ✅ | +| 0x0e11cd1707e0843b | FixesFungibleToken | ✅ | +| 0x0e11cd1707e0843b | FixesFungibleTokenInterface | ✅ | +| 0x0e11cd1707e0843b | FixesHeartbeat | ✅ | +| 0x0e11cd1707e0843b | FixesInscriptionFactory | ✅ | +| 0x0e11cd1707e0843b | FixesTokenAirDrops | ✅ | +| 0x0e11cd1707e0843b | FixesTokenLockDrops | ✅ | +| 0x0e11cd1707e0843b | FixesTradablePool | ✅ | +| 0x0e11cd1707e0843b | FixesTraits | ✅ | +| 0x0e11cd1707e0843b | FixesWrappedNFT | ✅ | +| 0x0e11cd1707e0843b | FungibleTokenManager | ✅ | +| 0xd9c02cdacccb25ab | FlowtyTestNFT | ✅ | +| 0xe8124d8428980aa6 | Bl0x | ✅ | +| 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

error: mismatched types
--\> b39a42479c1c2c77.AFLAdmin:23:50
\|
23 \| let templateRef: &AFLNFT.Template? = &AFLNFT.allTemplates\$&templateID\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`AFLNFT.Template?\`, got \`&AFLNFT.Template?\`

error: cannot create a nested reference to value of type &AFLNFT.Template
--\> b39a42479c1c2c77.AFLAdmin:23:49
\|
23 \| let templateRef: &AFLNFT.Template? = &AFLNFT.allTemplates\$&templateID\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 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 | ✅ | +| 0xf9dad0d4c14a92b5 | BUSD | ✅ | +| 0xf9dad0d4c14a92b5 | USDC | ✅ | +| 0xf9dad0d4c14a92b5 | USDT | ✅ | +| 0xf9dad0d4c14a92b5 | wFlow | ✅ | +| 0x4f7b6c1c7bbd154d | cobrakai_NFT | ✅ | +| 0x7269d23221b9f60f | flowpups_NFT | ✅ | +| 0x06f1e5cde6db0e70 | DropFactory | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyAddressVerifiers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyDrops | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyPricers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtySwitchers | ✅ | +| 0x195caada038c5806 | BarterYardClubWerewolf | ✅ | +| 0x195caada038c5806 | BarterYardStats | ✅ | +| 0x97d2f3b55c6a6a75 | LendingPool | ✅ | +| 0x324c34e1c517e4db | NFTCatalog | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0xf904744ec2f143e0 | rodman2_NFT | ✅ | +| 0xa63ecf66edb620ef | ZeedzINO | ✅ | +| 0x3a52faafb43951c0 | BigEast | ✅ | +| 0x3a52faafb43951c0 | LNVCT | ✅ | +| 0x3a52faafb43951c0 | MLS | ✅ | +| 0x3a52faafb43951c0 | NFL | ✅ | +| 0x3a52faafb43951c0 | Sharks | ✅ | +| 0x3a52faafb43951c0 | Stanz | ✅ | +| 0x3a52faafb43951c0 | TMNFT | ✅ | +| 0x6c35f966375845a6 | TixologiTickets | ✅ | +| 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 | ✅ | +| 0xa1296b1e2e90ca5b | HelloWorld | ✅ | +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x072127280188a611 | TestRootContract | ✅ | +| 0xd141ec172d90f107 | awesomeshop_NFT | ✅ | +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xad26718c4b6b921b | BlackHole | ✅ | +| 0xfab4d3ecd35407dd | jontest2_NFT | ✅ | +| 0x94b06cfca1d8a476 | NFTStorefront | ✅ | +| 0x6d692450d591524c | 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
| +| 0x547f177b243b4d80 | Market | ✅ | +| 0x547f177b243b4d80 | TopShotMarketV3 | ✅ | +| 0xcc3f23a0ee7b0549 | rodangear_NFT | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x82ec283f88a62e65 | FlowUtilityToken | ✅ | +| 0x8232ce4a3aff4e94 | PublicPriceOracle | ✅ | +| 0xf717d62a8ee6ca9d | snails_NFT | ✅ | +| 0xddb929038d45d4b3 | SwapConfig | ✅ | +| 0xddb929038d45d4b3 | SwapError | ✅ | +| 0xddb929038d45d4b3 | SwapInterfaces | ✅ | +| 0x43ee8c22fcf94ea3 | DapperStorageRent | ✅ | +| 0x857dc34d5e1631d3 | FLOAT | ✅ | +| 0xba50fdf382d82ff6 | donkeyparty_NFT | ✅ | +| 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 | ✅ | +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0xb7248baa24a95c3f | ETHUtils | ✅ | +| 0xb7248baa24a95c3f | EVMAgent | ✅ | +| 0xb7248baa24a95c3f | FGameLottery | ✅ | +| 0xb7248baa24a95c3f | FGameLotteryFactory | ✅ | +| 0xb7248baa24a95c3f | FGameLotteryRegistry | ✅ | +| 0xb7248baa24a95c3f | FRC20AccountsPool | ✅ | +| 0xb7248baa24a95c3f | FRC20Agents | ✅ | +| 0xb7248baa24a95c3f | FRC20Converter | ✅ | +| 0xb7248baa24a95c3f | FRC20FTShared | ✅ | +| 0xb7248baa24a95c3f | FRC20FungibleToken | ✅ | +| 0xb7248baa24a95c3f | FRC20Indexer | ✅ | +| 0xb7248baa24a95c3f | FRC20MarketManager | ✅ | +| 0xb7248baa24a95c3f | FRC20Marketplace | ✅ | +| 0xb7248baa24a95c3f | FRC20NFTWrapper | ✅ | +| 0xb7248baa24a95c3f | FRC20SemiNFT | ✅ | +| 0xb7248baa24a95c3f | FRC20Staking | ✅ | +| 0xb7248baa24a95c3f | FRC20StakingForwarder | ✅ | +| 0xb7248baa24a95c3f | FRC20StakingManager | ✅ | +| 0xb7248baa24a95c3f | FRC20StakingVesting | ✅ | +| 0xb7248baa24a95c3f | FRC20Storefront | ✅ | +| 0xb7248baa24a95c3f | FRC20TradingRecord | ✅ | +| 0xb7248baa24a95c3f | FRC20VoteCommands | ✅ | +| 0xb7248baa24a95c3f | FRC20Votes | ✅ | +| 0xb7248baa24a95c3f | Fixes | ✅ | +| 0xb7248baa24a95c3f | FixesAssetMeta | ✅ | +| 0xb7248baa24a95c3f | FixesAvatar | ✅ | +| 0xb7248baa24a95c3f | FixesBondingCurve | ✅ | +| 0xb7248baa24a95c3f | FixesFungibleToken | ✅ | +| 0xb7248baa24a95c3f | FixesFungibleTokenInterface | ✅ | +| 0xb7248baa24a95c3f | FixesHeartbeat | ✅ | +| 0xb7248baa24a95c3f | FixesInscriptionFactory | ✅ | +| 0xb7248baa24a95c3f | FixesTokenAirDrops | ✅ | +| 0xb7248baa24a95c3f | FixesTokenLockDrops | ✅ | +| 0xb7248baa24a95c3f | FixesTradablePool | ✅ | +| 0xb7248baa24a95c3f | FixesTraits | ✅ | +| 0xb7248baa24a95c3f | FixesWrappedNFT | ✅ | +| 0xb7248baa24a95c3f | FungibleTokenManager | ✅ | +| 0x5d45c655fcde5037 | TicalUniverse | ✅ | +| 0x5d45c655fcde5037 | TuneGO | ✅ | +| 0x7dc7430a06f38af3 | ZeedzINO | ✅ | +| 0xcbdb5a7b89c3c844 | PriceOracle | ✅ | +| 0x5b11566d5312c955 | stubbysoaps_NFT | ✅ | +| 0x3e5b4c627064625d | Flomies | ✅ | +| 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 | ✅ | +| 0xb45e7992680a0f7f | CricketMoments | ✅ | +| 0xb45e7992680a0f7f | CricketMomentsShardedCollection | ✅ | +| 0xb45e7992680a0f7f | FazeUtilityCoin | ✅ | +| 0x23031fd14bb0f21b | TwoSegmentsInterestRateModel | ✅ | +| 0x24650d6246d4176c | PriceOracle | ✅ | +| 0xcbed4c301441ded2 | StableSwapFactory | ✅ | +| 0xcbed4c301441ded2 | SwapFactory | ✅ | +| 0x4ed4b8e5cd0dd15e | PackNFT | ✅ | +| 0x6f16b5a358ec0246 | otanicloth_NFT | ✅ | +| 0x5479ef36515040b8 | mooseknuckles_NFT | ✅ | +| 0x92362a384f409a52 | TrmAssetV2_2 | ✅ | +| 0x92362a384f409a52 | TrmMarketV2_2 | ✅ | +| 0x92362a384f409a52 | TrmRentV2_2 | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbieCard | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbiePM | ❌

Error:
error: mismatched types
--\> 6d0f55821f6b2dbe.BBxBarbiePM:546:15
\|
546 \| return BBxBarbiePack.currentPackEditionIdByPackSeriesId
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`{UInt64: UInt64}\`, got \`&{UInt64: UInt64}\`

error: mismatched types
--\> 6d0f55821f6b2dbe.BBxBarbiePM:551:15
\|
551 \| return BBxBarbieCard.currentCardEditionIdByPackSeriesId
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`{UInt64: UInt64}\`, got \`&{UInt64: UInt64}\`

error: mismatched types
--\> 6d0f55821f6b2dbe.BBxBarbiePM:556:15
\|
556 \| return BBxBarbieToken.currentTokenEditionIdByPackSeriesId
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`{UInt64: UInt64}\`, got \`&{UInt64: UInt64}\`
| +| 0x6d0f55821f6b2dbe | BBxBarbiePack | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbieToken | ✅ | +| 0x683564e46977788a | MFLAdmin | ✅ | +| 0x683564e46977788a | MFLClub | ✅ | +| 0x683564e46977788a | MFLPack | ✅ | +| 0x683564e46977788a | MFLPackTemplate | ✅ | +| 0x683564e46977788a | MFLPlayer | ✅ | +| 0x683564e46977788a | MFLViews | ✅ | +| 0xd704ee8202a0d82d | ExampleNFT | ✅ | +| 0xdad0aaa285a25413 | PriceOracle | ✅ | +| 0x985d410b577fd4a1 | Gamisodes | ✅ | +| 0x985d410b577fd4a1 | Lufthaus | ✅ | +| 0x985d410b577fd4a1 | MUMGJ | ✅ | +| 0x985d410b577fd4a1 | MintStoreItem | ✅ | +| 0x985d410b577fd4a1 | OpenLockerInc | ✅ | +| 0x985d410b577fd4a1 | OpenLockerIncBoneYardHuskyzClub | ✅ | +| 0x985d410b577fd4a1 | Pickem | ✅ | +| 0x985d410b577fd4a1 | RTLStoreItem | ✅ | +| 0x985d410b577fd4a1 | YBees | ✅ | +| 0x985d410b577fd4a1 | YoungBoysBern | ✅ | +| 0x625f49193dcdccfc | FixesFungibleToken | ✅ | +| 0x2f8af5ed05bbde0d | SwapRouter | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0x469bd223c41cafc8 | testingtheflow_NFT | ✅ | +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0xc0304ec6065f7610 | testshopbonus_NFT | ✅ | +| 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 | ✅ | +| 0x2a9011074c827145 | FungibleTokenCatalog | ✅ | +| 0xbd327ae7428784b5 | FlowEVMBridgeHandlerInterfaces | ❌

Error:
error: trying to convert contract interface \`FlowEVMBridgeHandlerInterfaces\` to a contract
--\> bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21
\|
12 \| access(all) contract FlowEVMBridgeHandlerInterfaces {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xc20df20fabe06457 | SwapPair | ✅ | +| 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
| +| 0xe3faea00c5bb8d7d | TrmAssetV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmMarketV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmRentV2_2 | ✅ | +| 0x453418d68eae51c2 | micemania_NFT | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ✅ | +| 0x2bd8210db3a8fe8a | Swap | ✅ | +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0xf3e8f8ae2e9e2fec | giglabs_NFT | ✅ | +| 0x9e324d8ae3cbd0f0 | LendingPool | ✅ | +| 0x520a7157e1b964ed | ShebaHopeGrows | ✅ | +| 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 | ✅ | +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0x2299f74679d9c88a | A | ✅ | +| 0x6f6702697b205c18 | HWGarageCard | ✅ | +| 0x6f6702697b205c18 | HWGarageCardV2 | ✅ | +| 0x6f6702697b205c18 | HWGaragePM | ✅ | +| 0x6f6702697b205c18 | HWGaragePMV2 | ❌

Error:
error: mismatched types
--\> 6f6702697b205c18.HWGaragePMV2:566:15
\|
566 \| return HWGaragePackV2.currentPackEditionIdByPackSeriesId
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`{UInt64: UInt64}\`, got \`&{UInt64: UInt64}\`

error: mismatched types
--\> 6f6702697b205c18.HWGaragePMV2:571:15
\|
571 \| return HWGarageCardV2.currentCardEditionIdByPackSeriesId
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`{UInt64: UInt64}\`, got \`&{UInt64: UInt64}\`
| +| 0x6f6702697b205c18 | HWGaragePack | ✅ | +| 0x6f6702697b205c18 | HWGaragePackV2 | ✅ | +| 0x6f6702697b205c18 | HWGarageTokenV2 | ✅ | +| 0x26a1e94319e81a3c | Staking | ✅ | +| 0x26a1e94319e81a3c | StakingError | ✅ | +| 0x294e44e1ec6993c6 | CapabilityDelegator | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFilter | ✅ | +| 0x294e44e1ec6993c6 | FTAllFactory | ✅ | +| 0x294e44e1ec6993c6 | FTBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverFactory | ✅ | +| 0x294e44e1ec6993c6 | HybridCustody | ✅ | +| 0x294e44e1ec6993c6 | NFTCollectionPublicFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderAndCollectionFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderFactory | ✅ | +| 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 | ✅ | +| 0x7745157792470296 | LendingOracle | ✅ | +| 0xc15e75b5f6b95e54 | LendingComptroller | ✅ | +| 0x628992a07cb07272 | MatrixWorldVoucher | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 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\`
| +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ✅ | +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0x2ceae959ed1a7e7a | MigrationContractStaging | ✅ | +| 0x8bc9e24c307d249b | LendingConfig | ✅ | +| 0x8bc9e24c307d249b | LendingError | ✅ | +| 0x8bc9e24c307d249b | LendingInterfaces | ✅ | +| 0x74daa6f9c7ef24b1 | FCLCrypto | ✅ | +| 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 | ✅ | +| 0x3b220a3372190656 | PriceOracle | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | CATERPIETKN | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.CATERPIETKN:1:0
\|
1 \| 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468...
\| ^
| +| 0x566c813b3632783e | DITTOTKN | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.DITTOTKN:1:0
\|
1 \| 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468...
\| ^
| +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | EMEM3 | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.EMEM3:1:0
\|
1 \| 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468...
\| ^
| +| 0x566c813b3632783e | ExampleNFT | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | HowardNFT | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | KARAT12DRXRSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT12DRXRSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543132445258525342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT13JAMZSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT13JAMZSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431334a414d5a5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT14ZQPZSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT14ZQPZSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431345a51505a5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT16RJD6SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT16RJD6SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543136524a44365342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT17GAFPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT17GAFPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543137474146505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT18QPKCSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT18QPKCSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154313851504b435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT18XWQCSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT18XWQCSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543138585751435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT19MPNGSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT19MPNGSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431394d504e475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1AUAXQ | ✅ | +| 0x566c813b3632783e | KARAT1AUAXQSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1AUAXQSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543141554158515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1DQP9USBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1DQP9USBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543144515039555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1DYIP3SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1DYIP3SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543144594950335342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1ES83GSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1ES83GSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543145533833475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1F6JVMSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1F6JVMSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543146364a564d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1FANHSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1FANHSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543146414e485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARAT1FUWP9SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1FUWP9SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543146555750395342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1G2PRESBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1G2PRESBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543147325052455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1GQ6SDSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1GQ6SDSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543147513653445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1HYBRVSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1HYBRVSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543148594252565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1KMUIBSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1KMUIBSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314b4d5549425342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1LTABVNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1LTABVNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314c544142564e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1LXN14SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1LXN14SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314c584e31345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1LZJVLSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1LZJVLSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314c5a4a564c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1ONUJBSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1ONUJBSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314f4e554a425342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1OONYHSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1OONYHSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154314f4f4e59485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1PPCSMSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1PPCSMSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431505043534d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1PTBTXSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1PTBTXSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543150544254585342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1RZWDUSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1RZWDUSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431525a5744555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1TABR0SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1TABR0SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543154414252305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1TEL5LSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1TEL5LSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543154454c354c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT1XJCIQNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT1XJCIQNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415431584a4349514e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT20COKSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT20COKSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543230434f4b5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARAT23HUMDSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT23HUMDSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154323348554d445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT252AKMSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT252AKMSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154323532414b4d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT26J3L0SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT26J3L0SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432364a334c305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT26MUTRSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT26MUTRSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432364d5554525342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT27UF4KSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT27UF4KSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432375546344b5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT28NQRYSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT28NQRYSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432384e5152595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2AKMF0NFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2AKMF0NFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432414b4d46304e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2AWINFSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2AWINFSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154324157494e465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2BJCQVSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2BJCQVSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432424a4351565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2BXWIMSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2BXWIMSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432425857494d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2CJKIGSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2CJKIGSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432434a4b49475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2DCTUYSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2DCTUYSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543244435455595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2ELVW4SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2ELVW4SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432454c5657345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2HD9GSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2HD9GSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432484439475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARAT2HMNKVSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2HMNKVSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432484d4e4b565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2LVNRANFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2LVNRANFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154324c564e52414e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2NI8C7SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2NI8C7SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154324e493843375342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2OJKLTSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2OJKLTSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154324f4a4b4c545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2SFG0LSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2SFG0LSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415432534647304c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2SQDLYSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2SQDLYSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154325351444c595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2UUOFVSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2UUOFVSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543255554f46565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2V3VG3SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2V3VG3SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543256335647335342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT2WIHCDSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT2WIHCDSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543257494843445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARAT52HJUSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT52HJUSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241543532484a555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARAT5IDA7SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT5IDA7SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415435494441375342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARAT9HSUSSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARAT9HSUSSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415439485355535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATAQTC7SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATAQTC7SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415441515443375342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATAQXBQSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATAQXBQSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415441515842515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATB5PGKSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATB5PGKSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154423550474b5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATB8JTVSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATB8JTVSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415442384a54565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATE3JILSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATE3JILSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415445334a494c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATEFTJFSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATEFTJFSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544546544a465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATEG1M9SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATEG1M9SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544547314d395342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATES6E9SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATES6E9SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415445533645395342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATF8LTGSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATF8LTGSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415446384c54475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATFEXIQSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATFEXIQSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415446455849515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATFRCRSSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATFRCRSSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415446524352535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATGWDWT1NFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATGWDWT1NFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544757445754314e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATGWDWTSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATGWDWTSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415447574457545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATH3GEESBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATH3GEESBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415448334745455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATIKUDSSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATIKUDSSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154494b5544535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATJKH5ISBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATJKH5ISBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544a4b4835495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATJSHFGSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATJSHFGSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544a534846475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATKDRXPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATKDRXPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544b445258505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATKPA18SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATKPA18SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544b504131385342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATLHFGQSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATLHFGQSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544c484647515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATLK2R1NFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATLK2R1NFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544c4b3252314e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATLOL | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATLOL:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544c4f4c3a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365737328616c6c29...
\| ^
| +| 0x566c813b3632783e | KARATLOL2 | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATLOL2:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544c4f4c323a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365737328616c6c...
\| ^
| +| 0x566c813b3632783e | KARATMKMRJSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATMKMRJSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544d4b4d524a5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATNY9VTSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATNY9VTSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544e593956545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATOA9DYSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATOA9DYSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544f413944595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATOIVZPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATOIVZPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544f49565a505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATOKORCSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATOKORCSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241544f4b4f52435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATPRN1PSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATPRN1PSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415450524e31505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATPRR1ONFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATPRR1ONFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154505252314f4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATPRYCUSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATPRYCUSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415450525943555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATQE2C2SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATQE2C2SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415451453243325342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATTNILESBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATTNILESBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154544e494c455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATTUVLHSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATTUVLHSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545455564c485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATU4S5PSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATU4S5PSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415455345335505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATUTMICSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATUTMICSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415455544d49435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATUUFMPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATUUFMPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545555464d505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATWLUYPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATWLUYPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b41524154574c5559505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATXBMOFSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATXBMOFSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415458424d4f465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATXGJJDNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATXGJJDNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415458474a4a444e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATYFEQUSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATYFEQUSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415459464551555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATYWPIPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATYWPIPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b4152415459575049505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a20202020616363657373...
\| ^
| +| 0x566c813b3632783e | KARATZ10JY4HSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ10JY4HSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31304a5934485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ11QDVTSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ11QDVTSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3131514456545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ125ABNSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ125ABNSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31323541424e5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ13GTLHNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ13GTLHNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a313347544c484e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ13T8OZNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ13T8OZNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a313354384f5a4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ15WNYISBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ15WNYISBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3135574e59495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ19N3FQSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ19N3FQSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31394e3346515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1A0XH1SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1A0XH1SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3141305848315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1AA4HISBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1AA4HISBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3141413448495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1AALK1SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1AALK1SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3141414c4b315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1B8E9PSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1B8E9PSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3142384539505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1BJUJMNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1BJUJMNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31424a554a4d4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1BQDZOSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1BQDZOSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314251445a4f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1CUFLRSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1CUFLRSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314355464c525342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1FJB9FSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1FJB9FSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31464a4239465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1G2JHBNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1G2JHBNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3147324a48424e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1GNJJ4SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1GNJJ4SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31474e4a4a345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1I0UTPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1I0UTPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3149305554505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1JDPJUSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1JDPJUSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314a44504a555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1JI8RPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1JI8RPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314a493852505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1KNY61SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1KNY61SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314b4e5936315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1LIIMOSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1LIIMOSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314c49494d4f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1LUMBISBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1LUMBISBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314c554d42495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1MAOBYSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1MAOBYSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a314d414f42595342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1TV38DSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1TV38DSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3154563338445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1UNG6K | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1UNG6K:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31554e47364b3a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365737328...
\| ^
| +| 0x566c813b3632783e | KARATZ1UNG6KNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1UNG6KNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31554e47364b4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1VJSQOSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1VJSQOSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a31564a53514f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1WAPOUSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1WAPOUSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a315741504f555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1WWEDISBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1WWEDISBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3157574544495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1WWXKESBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1WWXKESBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a315757584b455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1X06RBSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1X06RBSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3158303652425342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1X8QFCSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1X8QFCSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3158385146435342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1YCJBSSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1YCJBSSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3159434a42535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ1YWAWH | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1YWAWH:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3159574157483a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365737328...
\| ^
| +| 0x566c813b3632783e | KARATZ1YWAWHSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ1YWAWHSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3159574157485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ20PLNMSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ20PLNMSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3230504c4e4d5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ20UWQ1SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ20UWQ1SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3230555751315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ24XF6ASBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ24XF6ASBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3234584636415342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ25MPUQSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ25MPUQSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32354d5055515342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ25SSGFSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ25SSGFSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3235535347465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2645X8SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2645X8SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3236343558385342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ28OH4ISBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ28OH4ISBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32384f4834495342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ28SMRXNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ28SMRXNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3238534d52584e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ294IQPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ294IQPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3239344951505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ29BXHESBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ29BXHESBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3239425848455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2C1CCESBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2C1CCESBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3243314343455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2DKFO4SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2DKFO4SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32444b464f345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2F8FPUSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2F8FPUSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3246384650555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2FSSJGSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2FSSJGSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a324653534a475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2L0Y20SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2L0Y20SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a324c305932305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2LKM3NNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2LKM3NNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a324c4b4d334e4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2NG47PSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2NG47PSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a324e473437505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2PATCTSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2PATCTSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3250415443545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2PHCV0SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2PHCV0SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3250484356305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2QW6XOSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2QW6XOSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32515736584f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2R7N6PSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2R7N6PSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3252374e36505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2UKA8KSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2UKA8KSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32554b41384b5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2UO4KSSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2UO4KSSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32554f344b535342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ2VMLQRSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ2VMLQRSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a32564d4c51525342543a204e6f6e46756e6769626c65546f6b656e207b0a0a2020202061636365...
\| ^
| +| 0x566c813b3632783e | KARATZ3EXJTSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ3EXJTSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3345584a545342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZ5PCPVSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ5PCPVSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a35504350565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZ9FEBLSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ9FEBLSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a394645424c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZ9QTKGSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZ9QTKGSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a3951544b475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZCALTNSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZCALTNSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a43414c544e5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZCWVWXSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZCWVWXSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a43575657585342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZDCMU1SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZDCMU1SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a44434d55315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZFOPJLSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZFOPJLSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a464f504a4c5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZGAEG5SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZGAEG5SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a47414547355342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZGSU0MNFT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZGSU0MNFT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a475355304d4e46543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZITLBOSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZITLBOSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a49544c424f5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZJVCVESBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZJVCVESBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4a564356455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZKRGSWSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZKRGSWSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4b524753575342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZKXCSFSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZKXCSFSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4b584353465342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZMMUVPSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZMMUVPSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4d4d5556505342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZMNAHHSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZMNAHHSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4d4e4148485342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZN9X20SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZN9X20SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a4e395832305342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZQJULGSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZQJULGSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a514a554c475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZRP4V4SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZRP4V4SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a52503456345342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZSW2P1SBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZSW2P1SBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a53573250315342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZTGW5ESBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZTGW5ESBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a54475735455342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZTOT5GSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZTOT5GSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a544f5435475342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZTUAMVSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZTUAMVSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a5455414d565342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZUHSINSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZUHSINSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a554853494e5342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZVBILUSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZVBILUSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a5642494c555342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KARATZWZV3DSBT | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.KARATZWZV3DSBT:1:0
\|
1 \| 696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420566965775265736f6c7665722066726f6d203078363331653838616537663164376332300a0a0a61636365737328616c6c2920636f6e7472616374204b415241545a575a5633445342543a204e6f6e46756e6769626c65546f6b656e207b0a0a202020206163636573...
\| ^
| +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | KaratNFT | ✅ | +| 0x566c813b3632783e | Karatv2 | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | MEGAMI | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | NOTADMIN7TKN | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.NOTADMIN7TKN:1:0
\|
1 \| 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468...
\| ^
| +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x44ef9309713e2061 | StakingError | ✅ | +| 0x44ef9309713e2061 | StakingNFT | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | T_TEST1130 | ❌

Error:
error: unexpected token: decimal integer
--\> 566c813b3632783e.T\_TEST1130:1:0
\|
1 \| 696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e7472616374204143434f5f534f4c45494c3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468...
\| ^
| +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0x566c813b3632783e | Z1G2JHB24KARAT | ✅ | +| 0x0b3677727d6e6240 | FixesFungibleToken | ✅ | +| 0x2dcd833119c0570c | toddnewstaging2_NFT | ✅ | +| 0x3286bb76e4e115fe | Boneyard | ✅ | +| 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 | ✅ | +| 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
| +| 0xb86f928a1fa7798e | FTViewUtils | ✅ | +| 0xb86f928a1fa7798e | TokenList | ✅ | +| 0xb86f928a1fa7798e | ViewResolvers | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 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
| +| 0xa448a1b60a5e8a14 | doorknobs_NFT | ✅ | +| 0x6b2e1b9d3c5ac5db | ValueLink_NFTMarketplace_v1 | ✅ | +| 0x6b2e1b9d3c5ac5db | ValueLink_NFT_v1 | ✅ | +| 0x58b60c5240d3f39b | PackNFT | ✅ | +| 0x58b60c5240d3f39b | TicalUniverse | ✅ | +| 0x58b60c5240d3f39b | TuneGO | ✅ | +| 0x58b60c5240d3f39b | TuneGONFTV5 | ✅ | +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x917db7072ed7160b | Cryptoys | ✅ | +| 0x917db7072ed7160b | CryptoysMetadataView2 | ✅ | +| 0x917db7072ed7160b | ICryptoys | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleConfig | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleInterface | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0xc911d6ddfae70ce8 | PriceOracle | ✅ | +| 0x9680721e43087f43 | DropTypes | ✅ | +| 0xd8f6346999b983f5 | IPackNFT | ✅ | +| 0x8a5f647e58dde1ee | DapperOffersV2 | ✅ | +| 0x8a5f647e58dde1ee | OffersV2 | ✅ | +| 0x8a5f647e58dde1ee | Resolver | ✅ | +| 0x56d62b3bd3120e7a | FixesFungibleToken | ✅ | +| 0x99ca04281098b33d | Art | ✅ | +| 0x99ca04281098b33d | Auction | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x99ca04281098b33d | Marketplace | ✅ | +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Versus | ✅ | +| 0x8770564d92180608 | TrmAssetV2_2 | ✅ | +| 0x8770564d92180608 | TrmMarketV2_2 | ✅ | +| 0x8770564d92180608 | TrmRentV2_2 | ✅ | +| 0x668b91e2995c2eba | PrivateReceiverForwarder | ✅ | +| 0x9e4362a20d15d952 | latestmay3test_NFT | ✅ | +| 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 | ✅ | +| 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 | ✅ | +| 0xdfc20aee650fcbdf | IBridgePermissions | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ✅ | +| 0xa2526e2d9cc7f0d2 | Pinnacle | ✅ | +| 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 \| ){
\| ^
| +| 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>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xe7d5fb4c128b85b7 | Genies | ✅ | From aee7c42c2a1994fee0df2681e0ec62677ff3fb3d Mon Sep 17 00:00:00 2001 From: "Leo Zhang (zhangchiqing)" Date: Thu, 11 Jul 2024 09:00:21 -0700 Subject: [PATCH 12/17] add root block for migration 07-10 --- .../staged-contracts-report-2024-07-10T10-00-00Z-testnet.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.md index 59b1798680..60a447c3ae 100644 --- a/migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.md +++ b/migrations_data/staged-contracts-report-2024-07-10T10-00-00Z-testnet.md @@ -21,9 +21,9 @@ Date: 10 July, 2024 ## Root Block ``` Height: 200582840 -ID: TBD +ID: ceffba44874bb33bb1f8b2cfd4c4f604be6bf1c4ee7c1f58dff98a8524cf09ac ParentID: 8ad2f366017386c5a0da3b1efe0e5e4de5931f90eaf942ac76afbdbe727029c2 -State Commitment: cb2714aede812fa8b66fee3e0f67882178d30a1c056cb642631d10ad054f5a71 +State Commitment: 7ce7a738641b94df9b244e805bec23edaab4708716741edcb98d7c2b8557b05c ``` ## Migration Report From 306a9a5f662caf768b25c2f0cbb7a70efe0910fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Thu, 11 Jul 2024 14:07:56 -0700 Subject: [PATCH 13/17] emit events for capability controller deletions --- migrations/capcons/linkmigration.go | 13 +- migrations/capcons/migration_test.go | 22 ++- runtime/capabilitycontrollers_test.go | 13 ++ runtime/cmd/cmd.go | 2 +- runtime/environment.go | 51 +++++- runtime/stdlib/account.go | 204 +++++++++++++++++----- runtime/stdlib/flow.go | 12 ++ runtime/tests/interpreter/account_test.go | 6 +- 8 files changed, 255 insertions(+), 68 deletions(-) diff --git a/migrations/capcons/linkmigration.go b/migrations/capcons/linkmigration.go index 9c041a5406..e56eade3ac 100644 --- a/migrations/capcons/linkmigration.go +++ b/migrations/capcons/linkmigration.go @@ -41,7 +41,8 @@ type LinkMigrationReporter interface { // LinkValueMigration migrates all links to capability controllers. type LinkValueMigration struct { CapabilityMapping *CapabilityMapping - Handler stdlib.CapabilityControllerIssueHandler + IssueHandler stdlib.CapabilityControllerIssueHandler + Handler stdlib.CapabilityControllerHandler Reporter LinkMigrationReporter } @@ -98,7 +99,7 @@ func (m *LinkValueMigration) Migrate( } reporter := m.Reporter - handler := m.Handler + issueHandler := m.IssueHandler locationRange := interpreter.EmptyLocationRange @@ -180,7 +181,7 @@ func (m *LinkValueMigration) Migrate( capabilityID, _ = stdlib.IssueStorageCapabilityController( inter, locationRange, - handler, + issueHandler, accountAddress, borrowType, targetPath, @@ -190,7 +191,7 @@ func (m *LinkValueMigration) Migrate( capabilityID, _ = stdlib.IssueAccountCapabilityController( inter, locationRange, - handler, + issueHandler, accountAddress, borrowType, ) @@ -253,6 +254,7 @@ func (m *LinkValueMigration) getPathCapabilityFinalTarget( authorization interpreter.Authorization, err error, ) { + handler := m.Handler locationRange := interpreter.EmptyLocationRange @@ -342,11 +344,12 @@ func (m *LinkValueMigration) getPathCapabilityFinalTarget( // just get target address/path reference := stdlib.GetCheckedCapabilityControllerReference( inter, + locationRange, value.Address, value.ID, wantedBorrowType, capabilityBorrowType, - locationRange, + handler, ) if reference == nil { return nil, interpreter.UnauthorizedAccess, nil diff --git a/migrations/capcons/migration_test.go b/migrations/capcons/migration_test.go index 0446cb4961..879c78fba9 100644 --- a/migrations/capcons/migration_test.go +++ b/migrations/capcons/migration_test.go @@ -36,14 +36,14 @@ import ( "github.com/onflow/cadence/runtime/tests/utils" ) -type testCapConIssueHandler struct { +type testCapConHandler struct { ids map[common.Address]uint64 events []cadence.Event } -var _ stdlib.CapabilityControllerIssueHandler = &testCapConIssueHandler{} +var _ stdlib.CapabilityControllerIssueHandler = &testCapConHandler{} -func (g *testCapConIssueHandler) GenerateAccountID(address common.Address) (uint64, error) { +func (g *testCapConHandler) GenerateAccountID(address common.Address) (uint64, error) { if g.ids == nil { g.ids = make(map[common.Address]uint64) } @@ -51,11 +51,11 @@ func (g *testCapConIssueHandler) GenerateAccountID(address common.Address) (uint return g.ids[address], nil } -func (g *testCapConIssueHandler) EmitEvent( +func (g *testCapConHandler) EmitEvent( inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, eventType *sema.CompositeType, values []interpreter.Value, - locationRange interpreter.LocationRange, ) { runtime.EmitEventFields( inter, @@ -489,13 +489,14 @@ func testPathCapabilityValueMigration( capabilityMapping := &CapabilityMapping{} - handler := &testCapConIssueHandler{} + handler := &testCapConHandler{} migration.Migrate( migration.NewValueMigrationsPathMigrator( reporter, &LinkValueMigration{ CapabilityMapping: capabilityMapping, + IssueHandler: handler, Handler: handler, Reporter: reporter, }, @@ -1480,13 +1481,14 @@ func testLinkMigration( capabilityMapping := &CapabilityMapping{} - handler := &testCapConIssueHandler{} + handler := &testCapConHandler{} migration.Migrate( migration.NewValueMigrationsPathMigrator( reporter, &LinkValueMigration{ CapabilityMapping: capabilityMapping, + IssueHandler: handler, Handler: handler, Reporter: reporter, }, @@ -2301,13 +2303,14 @@ func TestPublishedPathCapabilityValueMigration(t *testing.T) { capabilityMapping := &CapabilityMapping{} - handler := &testCapConIssueHandler{} + handler := &testCapConHandler{} migration.Migrate( migration.NewValueMigrationsPathMigrator( reporter, &LinkValueMigration{ CapabilityMapping: capabilityMapping, + IssueHandler: handler, Handler: handler, Reporter: reporter, }, @@ -2551,13 +2554,14 @@ func TestUntypedPathCapabilityValueMigration(t *testing.T) { capabilityMapping := &CapabilityMapping{} - handler := &testCapConIssueHandler{} + handler := &testCapConHandler{} migration.Migrate( migration.NewValueMigrationsPathMigrator( reporter, &LinkValueMigration{ CapabilityMapping: capabilityMapping, + IssueHandler: handler, Handler: handler, Reporter: reporter, }, diff --git a/runtime/capabilitycontrollers_test.go b/runtime/capabilitycontrollers_test.go index ca73145bbb..655dcf0147 100644 --- a/runtime/capabilitycontrollers_test.go +++ b/runtime/capabilitycontrollers_test.go @@ -1960,6 +1960,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -2004,6 +2005,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -2536,6 +2538,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -2572,6 +2575,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ "flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())", + `flow.AccountCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -2986,6 +2990,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -3024,6 +3029,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -3062,6 +3068,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -3100,6 +3107,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -3142,6 +3150,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -3187,6 +3196,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -3326,6 +3336,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -3360,6 +3371,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) @@ -3398,6 +3410,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.AccountCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), ) diff --git a/runtime/cmd/cmd.go b/runtime/cmd/cmd.go index 4192c23fc9..3d869cbfdd 100644 --- a/runtime/cmd/cmd.go +++ b/runtime/cmd/cmd.go @@ -326,9 +326,9 @@ func (*StandardLibraryHandler) GetAccountContractCode(_ common.AddressLocation) func (*StandardLibraryHandler) EmitEvent( _ *interpreter.Interpreter, + _ interpreter.LocationRange, _ *sema.CompositeType, _ []interpreter.Value, - _ interpreter.LocationRange, ) { // NO-OP, only called for built-in events, // which never occurs, as all related functionality producing events is unavailable diff --git a/runtime/environment.go b/runtime/environment.go index 3214eb8692..1916543f96 100644 --- a/runtime/environment.go +++ b/runtime/environment.go @@ -190,8 +190,8 @@ func (e *interpreterEnvironment) newInterpreterConfig() *interpreter.Config { OnMeterComputation: e.newOnMeterComputation(), OnFunctionInvocation: e.newOnFunctionInvocationHandler(), OnInvokedFunctionReturn: e.newOnInvokedFunctionReturnHandler(), - CapabilityBorrowHandler: stdlib.BorrowCapabilityController, - CapabilityCheckHandler: stdlib.CheckCapabilityController, + CapabilityBorrowHandler: e.newCapabilityBorrowHandler(), + CapabilityCheckHandler: e.newCapabilityCheckHandler(), LegacyContractUpgradeEnabled: e.config.LegacyContractUpgradeEnabled, ContractUpdateTypeRemovalEnabled: e.config.ContractUpdateTypeRemovalEnabled, } @@ -373,9 +373,9 @@ func (e *interpreterEnvironment) GenerateAccountID(address common.Address) (uint func (e *interpreterEnvironment) EmitEvent( inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, eventType *sema.CompositeType, values []interpreter.Value, - locationRange interpreter.LocationRange, ) { EmitEventFields( inter, @@ -1256,3 +1256,48 @@ func (e *interpreterEnvironment) getBaseActivation( } return } + +func (e *interpreterEnvironment) newCapabilityBorrowHandler() interpreter.CapabilityBorrowHandlerFunc { + + return func( + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, + address interpreter.AddressValue, + capabilityID interpreter.UInt64Value, + wantedBorrowType *sema.ReferenceType, + capabilityBorrowType *sema.ReferenceType, + ) interpreter.ReferenceValue { + + return stdlib.BorrowCapabilityController( + inter, + locationRange, + address, + capabilityID, + wantedBorrowType, + capabilityBorrowType, + e, + ) + } +} + +func (e *interpreterEnvironment) newCapabilityCheckHandler() interpreter.CapabilityCheckHandlerFunc { + return func( + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, + address interpreter.AddressValue, + capabilityID interpreter.UInt64Value, + wantedBorrowType *sema.ReferenceType, + capabilityBorrowType *sema.ReferenceType, + ) interpreter.BoolValue { + + return stdlib.CheckCapabilityController( + inter, + locationRange, + address, + capabilityID, + wantedBorrowType, + capabilityBorrowType, + e, + ) + } +} diff --git a/runtime/stdlib/account.go b/runtime/stdlib/account.go index e2329e84a5..f531964e3b 100644 --- a/runtime/stdlib/account.go +++ b/runtime/stdlib/account.go @@ -69,9 +69,9 @@ var accountFunctionType = sema.NewSimpleFunctionType( type EventEmitter interface { EmitEvent( inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, eventType *sema.CompositeType, values []interpreter.Value, - locationRange interpreter.LocationRange, ) } @@ -89,6 +89,10 @@ type CapabilityControllerIssueHandler interface { AccountIDGenerator } +type CapabilityControllerHandler interface { + EventEmitter +} + type AccountHandler interface { AccountIDGenerator BalanceProvider @@ -165,9 +169,9 @@ func NewAccountConstructor(creator AccountCreator) StandardLibraryValue { creator.EmitEvent( inter, + locationRange, AccountCreatedEventType, []interpreter.Value{addressValue}, - locationRange, ) return NewAccountReferenceValue( @@ -315,8 +319,9 @@ func NewAccountValue( func() interpreter.Value { return newAccountCapabilitiesValue( inter, - handler, addressValue, + handler, + handler, ) }, ) @@ -638,6 +643,7 @@ func newAccountKeysAddFunction( handler.EmitEvent( inter, + locationRange, AccountKeyAddedFromPublicKeyEventType, []interpreter.Value{ addressValue, @@ -646,7 +652,6 @@ func newAccountKeysAddFunction( hashAlgoValue, interpreter.NewIntValueFromInt64(inter, int64(accountKey.KeyIndex)), }, - locationRange, ) return NewAccountKeyValue( @@ -916,12 +921,12 @@ func newAccountKeysRevokeFunction( handler.EmitEvent( inter, + locationRange, AccountKeyRemovedFromPublicKeyIndexEventType, []interpreter.Value{ addressValue, indexValue, }, - locationRange, ) return interpreter.NewSomeValueNonCopying( @@ -972,6 +977,7 @@ func newAccountInboxPublishFunction( handler.EmitEvent( inter, + locationRange, AccountInboxPublishedEventType, []interpreter.Value{ providerValue, @@ -979,7 +985,6 @@ func newAccountInboxPublishFunction( nameValue, interpreter.NewTypeValue(inter, value.StaticType(inter)), }, - locationRange, ) publishedValue := interpreter.NewPublishedValue(inter, recipientValue, value).Transfer( @@ -1070,12 +1075,12 @@ func newAccountInboxUnpublishFunction( handler.EmitEvent( inter, + locationRange, AccountInboxUnpublishedEventType, []interpreter.Value{ providerValue, nameValue, }, - locationRange, ) return interpreter.NewSomeValueNonCopying(inter, value) @@ -1159,13 +1164,13 @@ func newAccountInboxClaimFunction( handler.EmitEvent( inter, + locationRange, AccountInboxClaimedEventType, []interpreter.Value{ providerValue, recipientValue, nameValue, }, - locationRange, ) return interpreter.NewSomeValueNonCopying(inter, value) @@ -1734,13 +1739,13 @@ func changeAccountContracts( handler.EmitEvent( inter, + locationRange, eventType, []interpreter.Value{ addressValue, codeHashValue, nameValue, }, - locationRange, ) return interpreter.NewDeployedContractValue( @@ -2124,13 +2129,13 @@ func newAccountContractsRemoveFunction( handler.EmitEvent( inter, + locationRange, AccountContractRemovedEventType, []interpreter.Value{ addressValue, codeHashValue, nameValue, }, - locationRange, ) return interpreter.NewSomeValueNonCopying( @@ -2265,33 +2270,35 @@ func CodeToHashValue(inter *interpreter.Interpreter, code []byte) *interpreter.A func newAccountStorageCapabilitiesValue( inter *interpreter.Interpreter, - handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, + issueHandler CapabilityControllerIssueHandler, + handler CapabilityControllerHandler, ) interpreter.Value { return interpreter.NewAccountStorageCapabilitiesValue( inter, addressValue, - newAccountStorageCapabilitiesGetControllerFunction(inter, addressValue), - newAccountStorageCapabilitiesGetControllersFunction(inter, addressValue), - newAccountStorageCapabilitiesForEachControllerFunction(inter, addressValue), - newAccountStorageCapabilitiesIssueFunction(inter, handler, addressValue), - newAccountStorageCapabilitiesIssueWithTypeFunction(inter, handler, addressValue), + newAccountStorageCapabilitiesGetControllerFunction(inter, addressValue, handler), + newAccountStorageCapabilitiesGetControllersFunction(inter, addressValue, handler), + newAccountStorageCapabilitiesForEachControllerFunction(inter, addressValue, handler), + newAccountStorageCapabilitiesIssueFunction(inter, issueHandler, addressValue), + newAccountStorageCapabilitiesIssueWithTypeFunction(inter, issueHandler, addressValue), ) } func newAccountAccountCapabilitiesValue( inter *interpreter.Interpreter, - handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, + issueHandler CapabilityControllerIssueHandler, + handler CapabilityControllerHandler, ) interpreter.Value { accountCapabilities := interpreter.NewAccountAccountCapabilitiesValue( inter, addressValue, - newAccountAccountCapabilitiesGetControllerFunction(inter, addressValue), - newAccountAccountCapabilitiesGetControllersFunction(inter, addressValue), - newAccountAccountCapabilitiesForEachControllerFunction(inter, addressValue), - newAccountAccountCapabilitiesIssueFunction(inter, handler, addressValue), - newAccountAccountCapabilitiesIssueWithTypeFunction(inter, handler, addressValue), + newAccountAccountCapabilitiesGetControllerFunction(inter, addressValue, handler), + newAccountAccountCapabilitiesGetControllersFunction(inter, addressValue, handler), + newAccountAccountCapabilitiesForEachControllerFunction(inter, addressValue, handler), + newAccountAccountCapabilitiesIssueFunction(inter, addressValue, issueHandler), + newAccountAccountCapabilitiesIssueWithTypeFunction(inter, addressValue, issueHandler), ) return accountCapabilities @@ -2299,29 +2306,32 @@ func newAccountAccountCapabilitiesValue( func newAccountCapabilitiesValue( inter *interpreter.Interpreter, - handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, + issueHandler CapabilityControllerIssueHandler, + handler CapabilityControllerHandler, ) interpreter.Value { return interpreter.NewAccountCapabilitiesValue( inter, addressValue, - newAccountCapabilitiesGetFunction(inter, addressValue, false), - newAccountCapabilitiesGetFunction(inter, addressValue, true), + newAccountCapabilitiesGetFunction(inter, addressValue, handler, false), + newAccountCapabilitiesGetFunction(inter, addressValue, handler, true), newAccountCapabilitiesExistsFunction(inter, addressValue), newAccountCapabilitiesPublishFunction(inter, addressValue), newAccountCapabilitiesUnpublishFunction(inter, addressValue), func() interpreter.Value { return newAccountStorageCapabilitiesValue( inter, - handler, addressValue, + issueHandler, + handler, ) }, func() interpreter.Value { return newAccountAccountCapabilitiesValue( inter, - handler, addressValue, + issueHandler, + handler, ) }, ) @@ -2330,6 +2340,7 @@ func newAccountCapabilitiesValue( func newAccountStorageCapabilitiesGetControllerFunction( inter *interpreter.Interpreter, addressValue interpreter.AddressValue, + handler CapabilityControllerHandler, ) interpreter.BoundFunctionGenerator { return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { address := addressValue.ToAddress() @@ -2351,7 +2362,13 @@ func newAccountStorageCapabilitiesGetControllerFunction( capabilityID := uint64(capabilityIDValue) - referenceValue := getStorageCapabilityControllerReference(inter, address, capabilityID, locationRange) + referenceValue := getStorageCapabilityControllerReference( + inter, + locationRange, + address, + capabilityID, + handler, + ) if referenceValue == nil { return interpreter.Nil } @@ -2372,6 +2389,7 @@ var storageCapabilityControllerReferencesArrayStaticType = &interpreter.Variable func newAccountStorageCapabilitiesGetControllersFunction( inter *interpreter.Interpreter, addressValue interpreter.AddressValue, + handler CapabilityControllerHandler, ) interpreter.BoundFunctionGenerator { return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { address := addressValue.ToAddress() @@ -2414,7 +2432,13 @@ func newAccountStorageCapabilitiesGetControllersFunction( return nil } - referenceValue := getStorageCapabilityControllerReference(inter, address, capabilityID, locationRange) + referenceValue := getStorageCapabilityControllerReference( + inter, + locationRange, + address, + capabilityID, + handler, + ) if referenceValue == nil { panic(errors.NewUnreachableError()) } @@ -2439,6 +2463,7 @@ var accountStorageCapabilitiesForEachControllerCallbackTypeParams = []sema.Type{ func newAccountStorageCapabilitiesForEachControllerFunction( inter *interpreter.Interpreter, addressValue interpreter.AddressValue, + handler CapabilityControllerHandler, ) interpreter.BoundFunctionGenerator { return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { address := addressValue.ToAddress() @@ -2493,7 +2518,13 @@ func newAccountStorageCapabilitiesForEachControllerFunction( break } - referenceValue := getStorageCapabilityControllerReference(inter, address, capabilityID, locationRange) + referenceValue := getStorageCapabilityControllerReference( + inter, + locationRange, + address, + capabilityID, + handler, + ) if referenceValue == nil { panic(errors.NewUnreachableError()) } @@ -2732,6 +2763,7 @@ func IssueStorageCapabilityController( handler.EmitEvent( inter, + locationRange, StorageCapabilityControllerIssuedEventType, []interpreter.Value{ capabilityIDValue, @@ -2739,7 +2771,6 @@ func IssueStorageCapabilityController( typeValue, targetPathValue, }, - locationRange, ) return capabilityIDValue, borrowStaticType @@ -2747,8 +2778,8 @@ func IssueStorageCapabilityController( func newAccountAccountCapabilitiesIssueFunction( inter *interpreter.Interpreter, - handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, + handler CapabilityControllerIssueHandler, ) interpreter.BoundFunctionGenerator { return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { address := addressValue.ToAddress() @@ -2782,8 +2813,8 @@ func newAccountAccountCapabilitiesIssueFunction( func newAccountAccountCapabilitiesIssueWithTypeFunction( inter *interpreter.Interpreter, - handler CapabilityControllerIssueHandler, addressValue interpreter.AddressValue, + handler CapabilityControllerIssueHandler, ) interpreter.BoundFunctionGenerator { return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { address := addressValue.ToAddress() @@ -2918,13 +2949,13 @@ func IssueAccountCapabilityController( handler.EmitEvent( inter, + locationRange, AccountCapabilityControllerIssuedEventType, []interpreter.Value{ capabilityIDValue, addressValue, typeValue, }, - locationRange, ) return capabilityIDValue, borrowStaticType @@ -2985,6 +3016,7 @@ func getCapabilityController( inter *interpreter.Interpreter, address common.Address, capabilityID uint64, + handler CapabilityControllerHandler, ) interpreter.CapabilityControllerValue { storageMapKey := interpreter.Uint64StorageMapKey(capabilityID) @@ -3017,7 +3049,11 @@ func getCapabilityController( newCapabilityControllerSetTagFunction(address, capabilityID) controller.Delete = - newStorageCapabilityControllerDeleteFunction(address, controller) + newStorageCapabilityControllerDeleteFunction( + address, + controller, + handler, + ) controller.SetTarget = newStorageCapabilityControllerSetTargetFunction(address, controller) @@ -3034,7 +3070,11 @@ func getCapabilityController( newCapabilityControllerSetTagFunction(address, capabilityID) controller.Delete = - newAccountCapabilityControllerDeleteFunction(address, controller) + newAccountCapabilityControllerDeleteFunction( + address, + controller, + handler, + ) } return controller @@ -3042,12 +3082,18 @@ func getCapabilityController( func getStorageCapabilityControllerReference( inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, address common.Address, capabilityID uint64, - locationRange interpreter.LocationRange, + handler CapabilityControllerHandler, ) *interpreter.EphemeralReferenceValue { - capabilityController := getCapabilityController(inter, address, capabilityID) + capabilityController := getCapabilityController( + inter, + address, + capabilityID, + handler, + ) if capabilityController == nil { return nil } @@ -3098,6 +3144,7 @@ func newStorageCapabilityControllerSetTargetFunction( func newStorageCapabilityControllerDeleteFunction( address common.Address, controller *interpreter.StorageCapabilityControllerValue, + handler CapabilityControllerHandler, ) func(*interpreter.Interpreter, interpreter.LocationRange) { return func( inter *interpreter.Interpreter, @@ -3118,6 +3165,18 @@ func newStorageCapabilityControllerDeleteFunction( address, capabilityID, ) + + addressValue := interpreter.AddressValue(address) + + handler.EmitEvent( + inter, + locationRange, + StorageCapabilityControllerDeletedEventType, + []interpreter.Value{ + capabilityID, + addressValue, + }, + ) } } @@ -3575,6 +3634,7 @@ func getCheckedCapabilityController( capabilityIDValue interpreter.UInt64Value, wantedBorrowType *sema.ReferenceType, capabilityBorrowType *sema.ReferenceType, + handler CapabilityControllerHandler, ) ( interpreter.CapabilityControllerValue, *sema.ReferenceType, @@ -3592,7 +3652,12 @@ func getCheckedCapabilityController( capabilityAddress := capabilityAddressValue.ToAddress() capabilityID := uint64(capabilityIDValue) - controller := getCapabilityController(inter, capabilityAddress, capabilityID) + controller := getCapabilityController( + inter, + capabilityAddress, + capabilityID, + handler, + ) if controller == nil { return nil, nil } @@ -3614,11 +3679,12 @@ func getCheckedCapabilityController( func GetCheckedCapabilityControllerReference( inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, capabilityAddressValue interpreter.AddressValue, capabilityIDValue interpreter.UInt64Value, wantedBorrowType *sema.ReferenceType, capabilityBorrowType *sema.ReferenceType, - locationRange interpreter.LocationRange, + handler CapabilityControllerHandler, ) interpreter.ReferenceValue { controller, resultBorrowType := getCheckedCapabilityController( inter, @@ -3626,6 +3692,7 @@ func GetCheckedCapabilityControllerReference( capabilityIDValue, wantedBorrowType, capabilityBorrowType, + handler, ) if controller == nil { return nil @@ -3648,14 +3715,16 @@ func BorrowCapabilityController( capabilityID interpreter.UInt64Value, wantedBorrowType *sema.ReferenceType, capabilityBorrowType *sema.ReferenceType, + handler CapabilityControllerHandler, ) interpreter.ReferenceValue { referenceValue := GetCheckedCapabilityControllerReference( inter, + locationRange, capabilityAddress, capabilityID, wantedBorrowType, capabilityBorrowType, - locationRange, + handler, ) if referenceValue == nil { return nil @@ -3684,14 +3753,17 @@ func CheckCapabilityController( capabilityID interpreter.UInt64Value, wantedBorrowType *sema.ReferenceType, capabilityBorrowType *sema.ReferenceType, + handler CapabilityControllerHandler, ) interpreter.BoolValue { + referenceValue := GetCheckedCapabilityControllerReference( inter, + locationRange, capabilityAddress, capabilityID, wantedBorrowType, capabilityBorrowType, - locationRange, + handler, ) if referenceValue == nil { return interpreter.FalseValue @@ -3713,6 +3785,7 @@ func CheckCapabilityController( func newAccountCapabilitiesGetFunction( inter *interpreter.Interpreter, addressValue interpreter.AddressValue, + handler CapabilityControllerHandler, borrow bool, ) interpreter.BoundFunctionGenerator { return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { @@ -3819,6 +3892,7 @@ func newAccountCapabilitiesGetFunction( capabilityID, wantedBorrowType, capabilityBorrowType, + handler, ) } else { // When not borrowing, @@ -3831,6 +3905,7 @@ func newAccountCapabilitiesGetFunction( capabilityID, wantedBorrowType, capabilityBorrowType, + handler, ) if controller != nil { resultBorrowStaticType := @@ -3904,12 +3979,18 @@ func newAccountCapabilitiesExistsFunction( func getAccountCapabilityControllerReference( inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, address common.Address, capabilityID uint64, - locationRange interpreter.LocationRange, + handler CapabilityControllerHandler, ) *interpreter.EphemeralReferenceValue { - capabilityController := getCapabilityController(inter, address, capabilityID) + capabilityController := getCapabilityController( + inter, + address, + capabilityID, + handler, + ) if capabilityController == nil { return nil } @@ -3931,6 +4012,7 @@ func getAccountCapabilityControllerReference( func newAccountAccountCapabilitiesGetControllerFunction( inter *interpreter.Interpreter, addressValue interpreter.AddressValue, + handler CapabilityControllerHandler, ) interpreter.BoundFunctionGenerator { return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { address := addressValue.ToAddress() @@ -3952,7 +4034,13 @@ func newAccountAccountCapabilitiesGetControllerFunction( capabilityID := uint64(capabilityIDValue) - referenceValue := getAccountCapabilityControllerReference(inter, address, capabilityID, locationRange) + referenceValue := getAccountCapabilityControllerReference( + inter, + locationRange, + address, + capabilityID, + handler, + ) if referenceValue == nil { return interpreter.Nil } @@ -3973,6 +4061,7 @@ var accountCapabilityControllerReferencesArrayStaticType = &interpreter.Variable func newAccountAccountCapabilitiesGetControllersFunction( inter *interpreter.Interpreter, addressValue interpreter.AddressValue, + handler CapabilityControllerHandler, ) interpreter.BoundFunctionGenerator { return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { address := addressValue.ToAddress() @@ -4010,9 +4099,10 @@ func newAccountAccountCapabilitiesGetControllersFunction( referenceValue := getAccountCapabilityControllerReference( inter, + locationRange, address, capabilityID, - locationRange, + handler, ) if referenceValue == nil { panic(errors.NewUnreachableError()) @@ -4051,6 +4141,7 @@ func (CapabilityControllersMutatedDuringIterationError) Error() string { func newAccountAccountCapabilitiesForEachControllerFunction( inter *interpreter.Interpreter, addressValue interpreter.AddressValue, + handler CapabilityControllerHandler, ) interpreter.BoundFunctionGenerator { return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { address := addressValue.ToAddress() @@ -4097,7 +4188,13 @@ func newAccountAccountCapabilitiesForEachControllerFunction( break } - referenceValue := getAccountCapabilityControllerReference(inter, address, capabilityID, locationRange) + referenceValue := getAccountCapabilityControllerReference( + inter, + locationRange, + address, + capabilityID, + handler, + ) if referenceValue == nil { panic(errors.NewUnreachableError()) } @@ -4152,6 +4249,7 @@ func newAccountAccountCapabilitiesForEachControllerFunction( func newAccountCapabilityControllerDeleteFunction( address common.Address, controller *interpreter.AccountCapabilityControllerValue, + handler CapabilityControllerHandler, ) func(*interpreter.Interpreter, interpreter.LocationRange) { return func(inter *interpreter.Interpreter, locationRange interpreter.LocationRange) { capabilityID := controller.CapabilityID @@ -4167,6 +4265,18 @@ func newAccountCapabilityControllerDeleteFunction( address, capabilityID, ) + + addressValue := interpreter.AddressValue(address) + + handler.EmitEvent( + inter, + locationRange, + AccountCapabilityControllerDeletedEventType, + []interpreter.Value{ + capabilityID, + addressValue, + }, + ) } } diff --git a/runtime/stdlib/flow.go b/runtime/stdlib/flow.go index 6478378ad7..9b13c7e06a 100644 --- a/runtime/stdlib/flow.go +++ b/runtime/stdlib/flow.go @@ -338,3 +338,15 @@ var AccountCapabilityControllerIssuedEventType = newFlowEventType( CapabilityControllerEventAddressParameter, CapabilityControllerEventTypeParameter, ) + +var StorageCapabilityControllerDeletedEventType = newFlowEventType( + "StorageCapabilityControllerDeleted", + CapabilityControllerEventIDParameter, + CapabilityControllerEventAddressParameter, +) + +var AccountCapabilityControllerDeletedEventType = newFlowEventType( + "AccountCapabilityControllerDeleted", + CapabilityControllerEventIDParameter, + CapabilityControllerEventAddressParameter, +) diff --git a/runtime/tests/interpreter/account_test.go b/runtime/tests/interpreter/account_test.go index 163dee590b..809d46dcb5 100644 --- a/runtime/tests/interpreter/account_test.go +++ b/runtime/tests/interpreter/account_test.go @@ -91,9 +91,9 @@ type testAccountHandler struct { accountKeysCount func(address common.Address) (uint64, error) emitEvent func( inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, eventType *sema.CompositeType, values []interpreter.Value, - locationRange interpreter.LocationRange, ) addAccountKey func( address common.Address, @@ -241,18 +241,18 @@ func (t *testAccountHandler) AccountKeysCount(address common.Address) (uint64, e func (t *testAccountHandler) EmitEvent( inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, eventType *sema.CompositeType, values []interpreter.Value, - locationRange interpreter.LocationRange, ) { if t.emitEvent == nil { panic(errors.NewUnexpectedError("unexpected call to EmitEvent")) } t.emitEvent( inter, + locationRange, eventType, values, - locationRange, ) } From 6014fbebf687cf8fb23fbf76d70bdc4a8bf3c88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Thu, 11 Jul 2024 14:42:42 -0700 Subject: [PATCH 14/17] remove unused function --- runtime/value.go | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/runtime/value.go b/runtime/value.go index 7ef95fb61f..3f8b541315 100644 --- a/runtime/value.go +++ b/runtime/value.go @@ -40,16 +40,6 @@ func newExportableValue(v interpreter.Value, inter *interpreter.Interpreter) exp } } -func newExportableValues(inter *interpreter.Interpreter, values []interpreter.Value) []exportableValue { - exportableValues := make([]exportableValue, 0, len(values)) - - for _, value := range values { - exportableValues = append(exportableValues, newExportableValue(value, inter)) - } - - return exportableValues -} - func (v exportableValue) Interpreter() *interpreter.Interpreter { return v.inter } From 96385b99802db73aabe4442e4f0ece282c9693f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Thu, 11 Jul 2024 14:50:11 -0700 Subject: [PATCH 15/17] emit StorageCapabilityControllerTargetChanged for StorageCapabilityController.target change --- runtime/capabilitycontrollers_test.go | 8 ++++++-- runtime/stdlib/account.go | 20 +++++++++++++++++++- runtime/stdlib/flow.go | 10 ++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/runtime/capabilitycontrollers_test.go b/runtime/capabilitycontrollers_test.go index 655dcf0147..5f5ce4898d 100644 --- a/runtime/capabilitycontrollers_test.go +++ b/runtime/capabilitycontrollers_test.go @@ -2574,7 +2574,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ - "flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())", + `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, `flow.AccountCapabilityControllerDeleted(id: 1, address: 0x0000000000000001)`, }, nonDeploymentEventStrings(events), @@ -2793,6 +2793,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `flow.StorageCapabilityControllerIssued(id: 2, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, `flow.StorageCapabilityControllerIssued(id: 3, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, `flow.StorageCapabilityControllerIssued(id: 4, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r2)`, + `flow.StorageCapabilityControllerTargetChanged(id: 1, address: 0x0000000000000001, path: /storage/r2)`, }, nonDeploymentEventStrings(events), ) @@ -2839,7 +2840,8 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ - "flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)", + `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerTargetChanged(id: 1, address: 0x0000000000000001, path: /storage/empty)`, }, nonDeploymentEventStrings(events), ) @@ -2890,6 +2892,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerTargetChanged(id: 1, address: 0x0000000000000001, path: /storage/r2)`, }, nonDeploymentEventStrings(events), ) @@ -2938,6 +2941,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.StorageCapabilityControllerTargetChanged(id: 1, address: 0x0000000000000001, path: /storage/s)`, }, nonDeploymentEventStrings(events), ) diff --git a/runtime/stdlib/account.go b/runtime/stdlib/account.go index f531964e3b..d3c148f08b 100644 --- a/runtime/stdlib/account.go +++ b/runtime/stdlib/account.go @@ -3056,7 +3056,11 @@ func getCapabilityController( ) controller.SetTarget = - newStorageCapabilityControllerSetTargetFunction(address, controller) + newStorageCapabilityControllerSetTargetFunction( + address, + controller, + handler, + ) case *interpreter.AccountCapabilityControllerValue: capabilityID := controller.CapabilityID @@ -3115,6 +3119,7 @@ func getStorageCapabilityControllerReference( func newStorageCapabilityControllerSetTargetFunction( address common.Address, controller *interpreter.StorageCapabilityControllerValue, + handler CapabilityControllerHandler, ) func(*interpreter.Interpreter, interpreter.LocationRange, interpreter.PathValue) { return func( inter *interpreter.Interpreter, @@ -3138,6 +3143,19 @@ func newStorageCapabilityControllerSetTargetFunction( newTargetPathValue, capabilityID, ) + + addressValue := interpreter.AddressValue(address) + + handler.EmitEvent( + inter, + locationRange, + StorageCapabilityControllerTargetChangedEventType, + []interpreter.Value{ + capabilityID, + addressValue, + newTargetPathValue, + }, + ) } } diff --git a/runtime/stdlib/flow.go b/runtime/stdlib/flow.go index 9b13c7e06a..b2aa19b740 100644 --- a/runtime/stdlib/flow.go +++ b/runtime/stdlib/flow.go @@ -350,3 +350,13 @@ var AccountCapabilityControllerDeletedEventType = newFlowEventType( CapabilityControllerEventIDParameter, CapabilityControllerEventAddressParameter, ) + +var StorageCapabilityControllerTargetChangedEventType = newFlowEventType( + "StorageCapabilityControllerTargetChanged", + CapabilityControllerEventIDParameter, + CapabilityControllerEventAddressParameter, + sema.Parameter{ + Identifier: "path", + TypeAnnotation: sema.StoragePathTypeAnnotation, + }, +) From ee5e3a1d835d914f9e6f05b7a88098b60bcd0309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Thu, 11 Jul 2024 15:23:47 -0700 Subject: [PATCH 16/17] emit event when capability is published and unpublished --- runtime/capabilitycontrollers_test.go | 24 ++++++++++++++++++++++ runtime/stdlib/account.go | 29 +++++++++++++++++++++++++-- runtime/stdlib/flow.go | 26 ++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 2 deletions(-) diff --git a/runtime/capabilitycontrollers_test.go b/runtime/capabilitycontrollers_test.go index 5f5ce4898d..4c79741118 100644 --- a/runtime/capabilitycontrollers_test.go +++ b/runtime/capabilitycontrollers_test.go @@ -302,6 +302,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -343,6 +344,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events)) }) @@ -396,6 +398,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events)) }) @@ -439,6 +442,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -493,6 +497,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -539,6 +544,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -593,6 +599,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -637,6 +644,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -692,6 +700,8 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, + `flow.CapabilityUnpublished(address: 0x0000000000000001, path: /public/r)`, }, nonDeploymentEventStrings(events), ) @@ -737,6 +747,8 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, + `flow.CapabilityUnpublished(address: 0x0000000000000001, path: /public/acct)`, }, nonDeploymentEventStrings(events), ) @@ -818,6 +830,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -857,6 +870,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -907,6 +921,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -949,6 +964,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -999,6 +1015,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -1039,6 +1056,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -1090,6 +1108,8 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, + `flow.CapabilityUnpublished(address: 0x0000000000000001, path: /public/r)`, }, nonDeploymentEventStrings(events), ) @@ -1131,6 +1151,8 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, + `flow.CapabilityUnpublished(address: 0x0000000000000001, path: /public/acct)`, }, nonDeploymentEventStrings(events), ) @@ -1175,6 +1197,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.StorageCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&A.0000000000000001.Test.R>(), path: /storage/r)`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/r, capability: Capability<&A.0000000000000001.Test.R>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) @@ -1209,6 +1232,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.Equal(t, []string{ `flow.AccountCapabilityControllerIssued(id: 1, address: 0x0000000000000001, type: Type<&Account>())`, + `flow.CapabilityPublished(address: 0x0000000000000001, path: /public/acct, capability: Capability<&Account>(address: 0x0000000000000001, id: 1))`, }, nonDeploymentEventStrings(events), ) diff --git a/runtime/stdlib/account.go b/runtime/stdlib/account.go index d3c148f08b..0dec352d19 100644 --- a/runtime/stdlib/account.go +++ b/runtime/stdlib/account.go @@ -2316,8 +2316,8 @@ func newAccountCapabilitiesValue( newAccountCapabilitiesGetFunction(inter, addressValue, handler, false), newAccountCapabilitiesGetFunction(inter, addressValue, handler, true), newAccountCapabilitiesExistsFunction(inter, addressValue), - newAccountCapabilitiesPublishFunction(inter, addressValue), - newAccountCapabilitiesUnpublishFunction(inter, addressValue), + newAccountCapabilitiesPublishFunction(inter, addressValue, handler), + newAccountCapabilitiesUnpublishFunction(inter, addressValue, handler), func() interpreter.Value { return newAccountStorageCapabilitiesValue( inter, @@ -3473,7 +3473,9 @@ func getAccountCapabilityControllerIDsIterator( func newAccountCapabilitiesPublishFunction( inter *interpreter.Interpreter, accountAddressValue interpreter.AddressValue, + handler CapabilityControllerHandler, ) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { accountAddress := accountAddressValue.ToAddress() return interpreter.NewBoundHostFunctionValue( @@ -3553,6 +3555,17 @@ func newAccountCapabilitiesPublishFunction( capabilityValue, ) + handler.EmitEvent( + inter, + locationRange, + CapabilityPublishedEventType, + []interpreter.Value{ + accountAddressValue, + pathValue, + capabilityValue, + }, + ) + return interpreter.Void }, ) @@ -3562,7 +3575,9 @@ func newAccountCapabilitiesPublishFunction( func newAccountCapabilitiesUnpublishFunction( inter *interpreter.Interpreter, addressValue interpreter.AddressValue, + handler CapabilityControllerHandler, ) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { address := addressValue.ToAddress() return interpreter.NewBoundHostFunctionValue( @@ -3621,6 +3636,16 @@ func newAccountCapabilitiesUnpublishFunction( nil, ) + handler.EmitEvent( + inter, + locationRange, + CapabilityUnpublishedEventType, + []interpreter.Value{ + addressValue, + pathValue, + }, + ) + return interpreter.NewSomeValueNonCopying(inter, capabilityValue) }, ) diff --git a/runtime/stdlib/flow.go b/runtime/stdlib/flow.go index b2aa19b740..c89779a382 100644 --- a/runtime/stdlib/flow.go +++ b/runtime/stdlib/flow.go @@ -360,3 +360,29 @@ var StorageCapabilityControllerTargetChangedEventType = newFlowEventType( TypeAnnotation: sema.StoragePathTypeAnnotation, }, ) + +var CapabilityEventAddressParameter = sema.Parameter{ + Identifier: "address", + TypeAnnotation: sema.AddressTypeAnnotation, +} + +var CapabilityEventPathParameter = sema.Parameter{ + Identifier: "path", + TypeAnnotation: sema.PublicPathTypeAnnotation, +} + +var CapabilityPublishedEventType = newFlowEventType( + "CapabilityPublished", + CapabilityEventAddressParameter, + CapabilityEventPathParameter, + sema.Parameter{ + Identifier: "capability", + TypeAnnotation: sema.NewTypeAnnotation(&sema.CapabilityType{}), + }, +) + +var CapabilityUnpublishedEventType = newFlowEventType( + "CapabilityUnpublished", + CapabilityEventAddressParameter, + CapabilityEventPathParameter, +) From 2fc95e59ccb703efe37e24edda4c9affee327d6b Mon Sep 17 00:00:00 2001 From: turbolent Date: Fri, 12 Jul 2024 17:33:53 +0000 Subject: [PATCH 17/17] v1.0.0-preview.37 --- npm-packages/cadence-parser/package.json | 2 +- version.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/npm-packages/cadence-parser/package.json b/npm-packages/cadence-parser/package.json index b10e4c6df2..494fe418dd 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.36", + "version": "1.0.0-preview.37", "description": "The Cadence parser", "homepage": "https://github.com/onflow/cadence", "repository": { diff --git a/version.go b/version.go index 01ead8c3d0..2449af58d3 100644 --- a/version.go +++ b/version.go @@ -21,4 +21,4 @@ package cadence -const Version = "v1.0.0-preview.36" +const Version = "v1.0.0-preview.37"