-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Development #76
Merged
Merged
Development #76
Changes from 191 commits
Commits
Show all changes
197 commits
Select commit
Hold shift + click to select a range
0752e56
lley154
aleeusgr 144aaa5
add some lucid code
aleeusgr 55f6202
test
aleeusgr 75241c3
disable old tests, emulate-something
aleeusgr b17cd0a
dummy test, lucid import
aleeusgr f87199d
interesting error message
aleeusgr 1bed3c4
add code from first test
aleeusgr 9f31435
pass
aleeusgr 6ec5a28
refactoring
aleeusgr 580a178
testing api
aleeusgr 853d2f8
comment
aleeusgr 15e5cbb
add lucid code for minting nfts
aleeusgr 6b64083
comment
aleeusgr c1cf2dd
enable helios test
aleeusgr e26ca18
error, lucid
aleeusgr 3896a4f
revert
aleeusgr dbfc7f1
test: instantiate an emulator. How do I use beforeEach?
aleeusgr 94e72cf
failed experiments
aleeusgr 899073a
restored logging
aleeusgr a2f6067
add minting transaction
aleeusgr 082fbc5
ehm,
aleeusgr 86bad02
clean up a bit
aleeusgr d7c6e0c
idea
aleeusgr eed95ab
minting -> function, added wait interval
aleeusgr e30451e
goal
aleeusgr 00b980d
create new test
aleeusgr 5c96dd1
renaming
aleeusgr a9aad72
empty test
aleeusgr d67fd87
refactoring
aleeusgr d903f2d
gc
aleeusgr f6fb78d
clean
aleeusgr 28c169a
seed
aleeusgr 5039821
error object Object to BigInt
aleeusgr af4ea65
transaction building function
aleeusgr 7610ef5
lucid.newTx.payToContract fails to complete
aleeusgr c6f32e8
clean up
aleeusgr 732deb5
naming
aleeusgr 1977803
doesnt make sense
aleeusgr cfb967e
dont need seed anymore
aleeusgr 5d724a4
if I move mintTx out to Describe, get same error.
aleeusgr 880fdc6
Merge branch 'refactor' into interact-with-plutus-script
aleeusgr 62eebd2
pass
aleeusgr a9204ad
rename
aleeusgr b457c9c
look up import statement
aleeusgr 5637853
pass
aleeusgr 7410e23
disable passing test
aleeusgr 86ae0ed
stuck
aleeusgr 3f0db1e
lint
aleeusgr a5e4644
got cborHex from Helios
aleeusgr eec74e5
my utxo changes, now I need to withdraw from the contract
aleeusgr 4a5284e
why my balance does not change?
aleeusgr 14839bd
I am not sure what happens, but checks are passing
aleeusgr 857cac2
naming
aleeusgr 5875f60
naming, sanity check
aleeusgr 5040e99
changelog
aleeusgr 5c7981e
sanity check
aleeusgr dc03844
development will become main
aleeusgr 9c9dd69
reflect
aleeusgr e5e074f
moved helios source to separate file
aleeusgr c04ffc9
removed print on passing tests
aleeusgr 72d50e4
naming
aleeusgr ce9bf4b
need to look up stuff
aleeusgr b0ece42
pass
aleeusgr f313804
added redeemUtxo to integration test
aleeusgr 33b40af
remove extra prints
aleeusgr ea5af2b
renaming and reflection
aleeusgr a6d681c
new test
aleeusgr 25b5d80
look at vesting first
aleeusgr cac21cb
rfl
aleeusgr c11f8de
deprecate
aleeusgr 11f3f98
matching keyhash
aleeusgr 497b1ca
naming
aleeusgr 3d8527d
testing tx
aleeusgr cf95cdb
matching keyhash pass
aleeusgr 27477b8
rfl
aleeusgr d4fc662
take a look at the vesting example, can I make it work?
aleeusgr 0956dcd
explore vesting contract
aleeusgr 1e0f597
redeem, comment
aleeusgr 3625e83
I dunno what Im doing
aleeusgr 0a91d68
datum -> lockADA, redeemer -> redeemUTXO
aleeusgr f52175a
helios syntax highlighting, comments
aleeusgr 6df30bb
comments -> Issue
aleeusgr 852bfa6
test code, get error
aleeusgr 88d955f
clean up
aleeusgr 3e2f07e
run the emulator
aleeusgr ab86c1c
redeem matching keyhash
aleeusgr b89ed85
Merge branch 'redeem-vesting' into development
aleeusgr a1ad118
what is my high level story?
aleeusgr fbe3083
redundant
aleeusgr bcac31c
review repo
aleeusgr f557588
Merge branch 'helios-emulator' into development
aleeusgr 53f1473
condition on emulator creation
aleeusgr 358e7f6
fixed overt error
aleeusgr e836f10
rfl
aleeusgr 7d1c7f7
add emulator unit test
aleeusgr 4fd3a0c
typo
aleeusgr c10d2bf
naming
aleeusgr 57a725f
naimng
aleeusgr 8ed31ed
going in circles
aleeusgr 5a79321
Address?
aleeusgr e60e6f6
sanity check
aleeusgr e58dc1a
what is Address?
aleeusgr 824206a
sanity check pass
aleeusgr a6d5cb9
format
aleeusgr 44fe91c
fair naming
aleeusgr a2b2d83
suggestions
aleeusgr 7d6dc05
suggestions
aleeusgr d21317c
circles
aleeusgr 0078dc9
highlights
aleeusgr c5c61bf
working code example
aleeusgr 5bf1efb
better example
aleeusgr a15678b
adding my working code
aleeusgr a97a233
naming?
aleeusgr d17f330
add more
aleeusgr 2f811a1
comments
aleeusgr 669ee8d
redundancy
aleeusgr 4a3f107
rlf
aleeusgr a8ad89a
reorg
aleeusgr b8f5d15
test template
aleeusgr a984107
docs
aleeusgr 99163d3
fix: commented out code that broke github actions
aleeusgr 23abafa
feat(helios): a function to provide contract endpoints to the emulator
aleeusgr 6272217
feat(helios-program.test): copy suggested template and make test pass
aleeusgr 20d3026
test(tests/helios-program): test properties on api method outputs
aleeusgr 66fcfd7
style(tests/helios-program): describe it
aleeusgr 371aa73
refactor(naming-tests): helios.Program, but why this association? in …
aleeusgr 803e0a3
feat(helios-program-doc.test.ts): added beforeEach to the test
aleeusgr b01807c
refactor(/tests-/src): removed non-working code and disabled running …
aleeusgr dd9c6cf
feat(tests/helios-vesting): added emulator instantiation with a test …
aleeusgr 3fcd06f
refactor: deleted old tests to simplify code review process
aleeusgr 8e50fde
Merge branch 'development' into vesting
aleeusgr 201fbc6
fix(helios-program-doc.test): changed matching keyhash to vesting to …
aleeusgr 8f5cc42
Merge branch 'development' into vesting
aleeusgr 59a5e2d
feat(helios-vesting.test): added Datum
aleeusgr 1c6dcc8
feat(helios-vesting.test): building the transaction
aleeusgr 8b5fa1e
feat(helios-vesting.test): completed the tx
aleeusgr ed7eee2
style(helios-vestin.test): comments and removing unused parts
aleeusgr a40fd00
docs(Changelog,-Readme): rfl
aleeusgr 9d96bf2
style(devlog): created devlog
aleeusgr 50c3744
docs(devlog): thinking about next step
aleeusgr e3d0f22
feat(tests): added test code to explore how test context work
aleeusgr 35f1916
refactor(helios-vesting.test): added a declaration to vary the durati…
aleeusgr c947f0d
feat(lockADA-transaction): Moved transaction building to a separate m…
aleeusgr d590428
fix(src/lockAda-and-tests/helios-vesting): fixed the test
aleeusgr 8caa145
refactor(tests): renamed a test
aleeusgr 39a051f
feat(helios-vesting.test): added a template
aleeusgr d447bfc
feat(helios-vesting-cancel.test): added boilerplate
aleeusgr 1b0b273
refactor(const-lockAda): changed input to validatorHash instead of va…
aleeusgr 966c6af
fix(lockAda): broken test
aleeusgr 0188b1d
feat(cancelVesting): submit lock tx
aleeusgr 081c434
docs(devlog): rfl
aleeusgr bd9f95c
test(lockAda): added nft id
aleeusgr 59741d1
feat(cancelVesting): added nft mph
aleeusgr a527392
feat(tests/helios-vesting-cancel.test): added some more code
aleeusgr e22bff4
docs(cancelVesting): rfl
aleeusgr 4dd978d
feat(cancelVesting): added validFrom and validTo
aleeusgr 77fea45
feat(cancelVesting): added signer,script and network parameters
aleeusgr 1a9f2f5
feat(cancelVesting): finalize tx, error
aleeusgr bd982e9
fix(cancelVesting): added collateral
aleeusgr aa6de3b
test(cancelVesting): transaction contents to screen
aleeusgr 21f33f0
refactor(tests/helios-vesting-cancel): comments and improve error output
aleeusgr 0768c5a
fix(test/helios-vesting-cancel): try adding more ada to alice
aleeusgr d799586
test(test/helios-vesting-cancel): fixed init test and added a collate…
aleeusgr de5166c
refactor(helios-vesting-cancel): get alice utxos with wallet emulator…
aleeusgr f8b8d6f
fix(lockAda): tx consumes only one wallet utxo
aleeusgr af8f71d
feat(helios-vesting-cancel.test): finalized the transaction
aleeusgr ee83e60
feat(cancelVesting): submit tx and tick and query the wallet
aleeusgr 96dd612
fix(cancelVesting): increased date validTo and more detailed error me…
aleeusgr 20fb109
fix(cancelVesting): added validTo check
aleeusgr b661223
fix(cancelVesting): changed the way time validFrom and validTo calcul…
aleeusgr f71149f
test(helios-vesting-cancel-test): moved networkParam init to earlier …
aleeusgr 98e008b
build(helios): bumped and npm install newer version
aleeusgr 26725b1
fix(lockAda): added underscores in the main
aleeusgr f8b1955
fix(lockAda): fixed minting vesting key
aleeusgr 3d5cb3c
fix(lockAda.ts): fixed minting vesting nft
aleeusgr 805ef82
test(helios-vesting-lock.test): expected values changed
aleeusgr c68fdd1
merge dev into cancel-vesting
aleeusgr 8792a16
fix(jelios-vesting-cancel): reproduce last error
aleeusgr 60051d4
docs(vesting-cancel-test): comments
aleeusgr 5af9447
docs(devlog): rfl
aleeusgr 800901f
feat(helios-network-params.test): a test suite to experiment with net…
aleeusgr 55cd811
feat(network-params.test): init emu
aleeusgr dfe7de3
feat(network-params-test): added initnp check
aleeusgr df84f43
feat(initNetworkParams): successfully reinit
aleeusgr 3bfac82
feat(vesting-cancel): added networkParams initialization
aleeusgr 1abd052
style(vesting-cancel.test): newnp
aleeusgr 1abc64d
test(network-Params-doc.test): added test for time and slot values pa…
aleeusgr 0d39da3
fix(cancelVesting): changed validity range calculation to zero slot
aleeusgr 1fe271d
test(cancelVesting): added test oracle
aleeusgr 41b4f37
Merge branch 'cancel-vesting' into development
aleeusgr 147ede3
docs(devlog): rfl
aleeusgr 6356e71
refactor(helios-vesting-cancel.test): clean up
aleeusgr bc41912
feat(cancelVesting.ts): add importable const
aleeusgr 277b314
test(helios-vesting-cancel.test): add a test for the importable const
aleeusgr 266db4a
feat(cancelVesting): write code
aleeusgr 6b5bb80
refactor(tests): rename files
aleeusgr c5f7c26
feat(lockAda): change initial point for tx validity calculation
aleeusgr File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,60 @@ | ||
# potential-robot | ||
[source](https://github.com/koralabs/handles-personalization/tree/master/simple_example_wth_tests) | ||
|
||
lightweight outline of testable expectations. | ||
|
||
Formatting test files using that kind of outline provides good organization and structure for the testing code. | ||
|
||
outline in test DSL: | ||
|
||
- [ ] | ||
```javascript | ||
describe("vesting contract"), () => { | ||
describe("contract initiation", () => { | ||
it("holds assets for vesting", async() => { | ||
}) | ||
it("lets the initiator take their own funds back, until the contract is claimed", async () => {}) | ||
}) | ||
describe("contract claim", async() => { | ||
it("allows the recipient to mint a claim token they can hold in their wallet" async() => { | ||
}) | ||
it("doesn't let the initiator withdraw funds once claimed", async() => { | ||
}) | ||
}) | ||
|
||
describe("gradual maturation", () => { | ||
... | ||
}) | ||
|
||
describe("reclaiming funds after long period of inactivity" () => { | ||
... | ||
}) | ||
}) | ||
``` | ||
|
||
- [ ] | ||
```javascript | ||
describe("vesting contract", () => { | ||
let vestingProgram, initiatorWallet, recipientWallet; | ||
beforeEach(() => { | ||
vestingProgram = new helios.Program( ... ); | ||
... | ||
}) | ||
it ("tests things while reusing provided `vestingProgram`", async () => { | ||
... | ||
}) | ||
}) | ||
``` | ||
- [ ] | ||
```javascript | ||
it("works with datumHash and datum at spend time") | ||
it("works with inlineDatum and no special datum at spend time") | ||
``` | ||
|
||
|
||
|
||
`npm install` | ||
`npm test` | ||
|
||
references: | ||
https://github.com/koralabs/handles-personalization/tree/master/simple_example_wth_tests | ||
https://github.com/lley154/helios-examples/tree/main/vitest |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
May 30th, Tuesday | ||
|
||
unstuck! re-read the discussion on Discord and found a way to solve the error. | ||
Yeah, mild case of met-a-girl. | ||
what's next is in the commit message; I really like this conventional commits tool, it helps me think. | ||
|
||
May 28th, Saturday | ||
|
||
Building cancelAda stalled; I get an error about slot out of range. | ||
I should try with simpler networkParameters, just initial configuration. | ||
I need to build a test for networkParameters | ||
|
||
May 21st, Sunday | ||
|
||
Huh, coding adventure. Thanks to lley154 I have lockAda; | ||
|
||
0: Emulator, Wallets, validator | ||
1: Alice locks 10 Ada for Bob to claim after some time; | ||
1: Alice Cancels | ||
2: Bob Claims | ||
1: Alice fails to cancel | ||
3: Charlie fails to claim. | ||
4: Bob sends Vesting ID to Charlie | ||
2: Change logic: | ||
Alice locks 10 Ada to exchange for a token. Anyone can claim until a Date, but they have to show that the transaction they are submitting has a token attached to it; | ||
|
||
|
||
Here, I need bob to make difference between Cancel and Claim; | ||
|
||
|
||
May 19th, Friday | ||
|
||
Added tests/helios-vesting.test.ts | ||
However reviewing the code I think: how much redundancy is there already? | ||
Actually, not much. Doc test is ok, just vesting is poorly named; It tests only a small part of the contract functionality; ok, it makes sense to try and factor out a lockAda function that will take enough arguments to submit a successful tx; | ||
|
||
May 17th, Wednesday | ||
|
||
Before I understand, I need to understand what I need to understand | ||
- [ ] a lightweight outline of testable expectations. | ||
- [ ] organization and structure for the testing code. | ||
- [ ] look at testing example in a [production app](https://github.com/Zhengqbbb/cz-git) | ||
|
||
My code should be easy to understand. | ||
I use my code as a Lego, having a set of building blocks that work together. | ||
|
||
let me write a test for compiling the validator. | ||
|
||
May 16th, Tuesday | ||
|
||
I have new goal(s); do I? Review README; | ||
|
||
May 13th, Saturday | ||
|
||
I have to discard three days of work, start anew. | ||
My goal is a loan contract. To build it, I need a testing environemnt to play with. | ||
I have two examples of code that works sending and redeeming tokens from a validator address: vesting in Helios and matching keyhash in lucid. | ||
matching keyhash is simpler, I should start there. Maybe next step would be to rebuild owner-only from Helios in lucid? | ||
|
||
May 9th, Tuesday | ||
|
||
Feel better, last couple of days were hard; | ||
Merge helios emulator? | ||
|
||
May 5, Friday | ||
No wind. Eat, code, sleep, repeat. No life; | ||
|
||
|
||
May 4, Thursday | ||
Still apathy, but I am pressing forward; | ||
two parts: the contract, and the transactions that serve it, are inseparable; at least for now. | ||
For vesting contract, I have the script, but I need to find transactions; or translate them from the example. | ||
`vesting/pages/index.tsx` imports components in its top, | ||
- [ ] index.tsx: how are components used? | ||
- [ ] loan: | ||
|
||
I am pretty exhausted; apathy and sleepiness on Wednesday; | ||
Now my goal is to buid without a manual. So I will start with building with a manual and see where it gets me. | ||
|
||
May 2, Tuesday | ||
|
||
https://github.com/aleeusgr/potential-robot/issues/70 | ||
|
||
May 1, Monday | ||
|
||
I am unstuck big time; now I have a nicer repo; | ||
9 tests are passing, out of which I know 5; | ||
|
||
Now I take a break. | ||
|
||
29 Apr, Sat | ||
|
||
I am stuck with both refactoring and using Helios nft minter contract to mint an nft in Lucid emulator. | ||
- [ ] look at tutorial Lucid smart contract interaction. | ||
|
||
25 April | ||
|
||
- [ ] refactor test | ||
- [ ] add nft to borrwer wallet | ||
|
||
13 April | ||
|
||
rethink | ||
|
||
2 April | ||
Monday reflection lands in this file. | ||
How do I bring Certification and DevX together? | ||
SDLC? What is SDLC? | ||
It's the process more then the result. | ||
"Avoid Success at all costs" | ||
|
||
21 March: | ||
Thanks to Randall: | ||
indicating the source-language-agnostic, compiled-and-encoded representation of untyped-plutus-core that is the basis for executing contracts on-chain. | ||
|
||
It was done by shell scripting in plutus starter, but now I think Ben suggested I should try | ||
- [ ] `plutus-simple-model` | ||
- [ ] `plutip` | ||
|
||
20 March | ||
And now I feel like I am not moving anywhere, or rather that I misunderstood a lot. | ||
|
||
I could run psm locally and use `mdbook serve` to get docs | ||
So now I have a front-end component, which is not suited for testing. | ||
I need to find out its identity, the core that makes it tick, which I think is a cborhex file. | ||
|
||
This is the file that would be subject to testing. Does it make sense? a dApp is being tested, a category(?) of plutus scripts and their relations. | ||
|
||
Tasty, QuickCheck and its analogs. | ||
|
||
- [ ] Helios -> cborHex | ||
- [ ] How do we test onchain code? | ||
- [ ] Good tests vs Bad tests - what's the difference? | ||
|
||
16 March | ||
|
||
The goals starts to be more clear. | ||
I need to run unit tests on desirables. | ||
|
||
- [ ] psm | ||
- [ ] helios | ||
|
||
then an integration test: | ||
|
||
- [ ] psm + helios. | ||
|
||
This will allow me to generate and test new logic. | ||
Once I have the logic that I need, I need to search for bugs. | ||
No-code first: use text and graphical descriptions to have a contract model easily accessible. | ||
How do I go on from the model to actual test code? | ||
|
||
Enhancements: | ||
- [ ] running CI in the cloud would work around my poor hardware. Tradeoffs? | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
// basic.spec.ts | ||
// organizing tests | ||
// https://vitest.dev/api/#test | ||
// `it` is alias for `test` | ||
// test suite; | ||
// test; | ||
|
||
import { describe, expect, it, vi } from 'vitest' | ||
import { promises as fs } from 'fs'; | ||
import { | ||
Assets, | ||
Address, | ||
ByteArrayData, | ||
ConstrData, | ||
Datum, | ||
ListData, | ||
MintingPolicyHash, | ||
NetworkEmulator, | ||
NetworkParams, | ||
Program, | ||
Value, | ||
textToBytes, | ||
TxOutput, | ||
Tx, | ||
} from "@hyperionbt/helios"; | ||
|
||
const person = { | ||
isActive: true, | ||
age: 32, | ||
} | ||
|
||
let optimize = false; | ||
const minAda = BigInt(2000000); // minimum lovelace needed to send an NFT | ||
const network = new NetworkEmulator(); | ||
const networkParamsFile = await fs.readFile('./src/preprod.json', 'utf8'); | ||
const networkParams = new NetworkParams(JSON.parse(networkParamsFile.toString())); | ||
const alice = network.createWallet(BigInt(10000000)); // should this be a property? | ||
network.tick(BigInt(10)); | ||
|
||
describe('state of the emulator', () => { | ||
it('shows that a wallet has been created', () => { | ||
// ahh, ok. Properties; | ||
expect(alice.address).toBeDefined() | ||
}) | ||
}) | ||
const script = await fs.readFile('./src/owner-only.hl', 'utf8'); | ||
const program = Program.new(script); | ||
//space here, maybe I need to modify program using .parameters? | ||
const compiledProgram = program.compile(optimize); | ||
|
||
const validatorHash = compiledProgram.validatorHash; | ||
const validatorAddress = Address.fromValidatorHash(validatorHash); | ||
|
||
describe('validator properties?', () => { | ||
|
||
it('shows that a validator has been created', () => { | ||
// what checks should I can have? | ||
// assert type | ||
// internal checks | ||
expect(person.isActive).toBeTruthy() | ||
}) | ||
}) | ||
const lock = new Tx() | ||
const ownerPkh = alice.pubKeyHash ; | ||
const datum = new ListData([new ByteArrayData(ownerPkh.bytes), | ||
]); | ||
|
||
const inlineDatum = Datum.inline(datum); | ||
const hashedDatum = Datum.hashed(datum); | ||
|
||
const lockIn = await network.getUtxos(alice.address) | ||
|
||
lock.addInput(lockIn[0]); | ||
|
||
const lockTxOutput = new TxOutput( | ||
validatorAddress, | ||
new Value(1000000n), // 1 tAda == 1 million lovelace | ||
inlineDatum | ||
) | ||
lock.addOutput(lockTxOutput) | ||
|
||
await lock.finalize(networkParams, alice.address); | ||
|
||
const lockTxId = await network.submitTx(lock); | ||
network.tick(BigInt(10)); | ||
|
||
describe('state of the emulator after the transaction', () => { | ||
it('a utxo at validator address contains correct Datum:', () => { | ||
// const uxto = network.getUtxos(); | ||
// tx.dump.body() | ||
// | ||
expect(alice.address).toBeDefined() | ||
}) | ||
it('checks validatorAddress', () => { | ||
expect(person.isActive).toBeTruthy() | ||
}) | ||
|
||
it('is active', () => { | ||
expect(person.isActive).toBeTruthy() | ||
}) | ||
it('age limit', () => { | ||
expect(person.age).toBeLessThanOrEqual(32) | ||
}) | ||
}) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deprecate