Skip to content
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

Boxes: Add support for Boxes #604

Merged
merged 24 commits into from
Nov 2, 2022
Merged

Boxes: Add support for Boxes #604

merged 24 commits into from
Nov 2, 2022

Conversation

algochoi
Copy link
Contributor

@algochoi algochoi commented Jul 6, 2022

Adds SDK support for Boxes introduced in algorand/indexer#1168 and algorand/go-algorand#4149.

* Initial work to define box types in appl calls

* More changes to boxes field

* Change boxes to array types, fix transactions, and tests

* Write box translation tests

* Add cucumber test steps

* Revert pretty print

* Fix decoding for txn boxes

* Revise tests to make box args similar to app args

* Clean up some code and add a blank test case

* Fix err case

* Fix box ref catch

* Delete box name field for length 0 array

* Revise guard

* Address some PR feedback

* Fix box translation condition from index to id

* Alias own reference condition

* Fix unit tests and add more comments

* Add guard and change reference condition for better readability

* Refactor box reference condition

* Export box reference type in index.ts and change SDK testing branch

* Revert back test branch to older version

* Remove redundant null check on array
@michaeldiamant michaeldiamant changed the title [WIP] Box storage feature branch Boxes: Box storage feature branch Jul 6, 2022
* Initial work to define box types in appl calls

* More changes to boxes field

* Change boxes to array types, fix transactions, and tests

* Write box translation tests

* Add cucumber test steps

* Revert pretty print

* Fix decoding for txn boxes

* Revise tests to make box args similar to app args

* Clean up some code and add a blank test case

* Fix err case

* Fix box ref catch

* Delete box name field for length 0 array

* Add box by name endpoint on algod

* Add encoding tests for uri

* Move scope for cucumber test helper functions

* Revise guard

* Address some PR feedback

* Fix box translation condition from index to id

* Alias own reference condition

* Fix unit tests and add more comments

* Add guard and change reference condition for better readability

* Refactor box reference condition

* Refactor URI encoding

* Add box integration test

* Change box name encoding scheme as query param in API

* Fix tests by changing how names are ingested

* Delete unused encoding URI functions

* Change app funding step from then to given

* Revise link in Box API comments and add type hint to json request
* Regnerate API models

* Add list boxes API, cucumber tests

* Refactor steps to use map

* Refactor steps

* Check list lengths for any duplicates

* Revert to feature branch

* Fix branch name
ahangsu and others added 6 commits September 3, 2022 01:10
* bump version and add to changelog

* update README.md for new version

* prettier on CHANGELOG

* Update README.md

Co-authored-by: John Lee <john.lee@algorand.com>

* Update README.md

Co-authored-by: John Lee <john.lee@algorand.com>

* Enhancement: Use sandbox for SDK Testing and remove Indexer v1 steps (#623)

* Add files to enable sandbox sdk testing

* Add some todo comments and formatting

* Update changes to script and env

* Delete indexer v1 test steps

* More changes to cucumber tests

* Change features directory in JS SDK

* Remove more indexer integration tests

* Update test env

* Update test-harness.sh

Co-authored-by: Zeph Grunschlag <tzaffi@users.noreply.github.com>

* Break out cucumber tags into their own files (#625)

* Command to generate input for Unused Steps Analysis Script + Remove those steps (#627)

* command to generate input for Unused Steps Analysis Script + Remove those steps

* remvoe the steps

* In response to CR remark. Update Makefile

* Update .test-env

Co-authored-by: Zeph Grunschlag <tzaffi@users.noreply.github.com>

Co-authored-by: Zeph Grunschlag <tzaffi@users.noreply.github.com>

* Bugfix: Pass verbosity to the harness and sandbox (#630)

* Ignore algorand-sdk-testing test-harness dir (#634)

* Enhancement: Deprecating use of langspec (#632)

* enhancement: Initial stateproofs support (#629)

* Initial stateproofs support

* Some more unused steps (#637)

* dummy push

* revert change of dummy push, ci runs now

Co-authored-by: Barbara Poon <barbara.poon@algorand.com>
Co-authored-by: algobarb <78746954+algobarb@users.noreply.github.com>
Co-authored-by: John Lee <john.lee@algorand.com>
Co-authored-by: algochoi <86622919+algochoi@users.noreply.github.com>
Co-authored-by: Zeph Grunschlag <tzaffi@users.noreply.github.com>
Co-authored-by: Michael Diamant <michaeldiamant@users.noreply.github.com>
Co-authored-by: Eric Warehime <eric.warehime@gmail.com>
* Add boxes endpoint with path tests

* Add lookup box by name api for indexer

* Merge develop branch into feature/box-storage (#620)

* properly set trace maxWidth (#593)

* fix: safe intDecoding (#599)

* fix: safe intDecoding

* test: parse number in edge case

* refactor: remove optional chaining for node12

* Remove code that relies on node's path module (#598)

* Remove code that relies on node's path module

* Replace url-parse with built in WHATWG URL API

* Removed path-browserify fallback from webpack config

* Removed path-browserify and url-parse from npm dependencies

* Removed references to `path-browserify` in FAQ.md

* bump version

* Github-Actions: Adding PR title and label checks (#600)

* Remove unused/unmaintained templates (#607)

* Dev Tools: Source map decoder (#590)

* adding source map decoder

* Enhancement: Upgrade typedoc and plugins (#605)

* Update ts-node, typescript, and typedoc to latest

* docs: tealSign (#610)

* bump version and add to changelog

* update README.md for new version

* API: Support attaching signatures to standard and multisig transactions (#595)

* Add attach signature method to transaction class

* Add multisig external signature methods

* Fix failing multisig test

* Add signature length checks

* Add method to create an unsigned multisig transaction blob

* Rename multisig create methods and use unencoded transaction

* Refactor `createMultisigTransactionWithSignature` to use `createMultisigTransaction` method

* Fix algosdk createMultisigTransaction export

* Use MultisigMetadata without pks in new create method

* These types should be consolidated in the future, and addrs seems like a better convention to use long-term

* More descriptive test suite name

* AVM:  Consolidate TEAL and AVM versions (#609)

* Testing: Use Dev mode network for cucumber tests (#614)

* Send zero txn to itself

* Refactor block advance functions

* Revise steps to allow for rekeying transient accounts

* Try to reduce flaky tests

* Move constant into step

* Add artificial sleep instead of sending blank txns when mimicking wait for block API

* Reduce flaky tests

* Remove unnecessary use of v2 algod client (#616)

* Remove unnecessary use of v2 algod client
* Add missing await for async function calls (#617)

* Rename rekey tag in makefile

* Revert testing branch back to master

Co-authored-by: Michael Diamant <michaeldiamant@users.noreply.github.com>

* Revert package lock from develop

Co-authored-by: Joe Polny <50534337+joe-p@users.noreply.github.com>
Co-authored-by: AlgoDoggo <93348148+AlgoDoggo@users.noreply.github.com>
Co-authored-by: Bryan Dela Cruz <bdshi13@outlook.com>
Co-authored-by: Lucky Baar <lucky.baar@algorand.com>
Co-authored-by: Jack <87339414+algojack@users.noreply.github.com>
Co-authored-by: Eric Warehime <eric.warehime@gmail.com>
Co-authored-by: Ben Guidarelli <ben.guidarelli@gmail.com>
Co-authored-by: Fionna Chan <fionnacst@gmail.com>
Co-authored-by: Jack Smith <jack.smith@algorand.com>
Co-authored-by: Jacob Daitzman <jdtzmn@gmail.com>
Co-authored-by: Michael Diamant <michaeldiamant@users.noreply.github.com>

* Revert package lock

* Fix comments in box related APIs

* Add next token to indexer box API test

* rm unused step

* Update src/client/v2/algod/getApplicationBoxByName.ts

* Update .test-env

Co-authored-by: Joe Polny <50534337+joe-p@users.noreply.github.com>
Co-authored-by: AlgoDoggo <93348148+AlgoDoggo@users.noreply.github.com>
Co-authored-by: Bryan Dela Cruz <bdshi13@outlook.com>
Co-authored-by: Lucky Baar <lucky.baar@algorand.com>
Co-authored-by: Jack <87339414+algojack@users.noreply.github.com>
Co-authored-by: Eric Warehime <eric.warehime@gmail.com>
Co-authored-by: Ben Guidarelli <ben.guidarelli@gmail.com>
Co-authored-by: Fionna Chan <fionnacst@gmail.com>
Co-authored-by: Jack Smith <jack.smith@algorand.com>
Co-authored-by: Jacob Daitzman <jdtzmn@gmail.com>
Co-authored-by: Michael Diamant <michaeldiamant@users.noreply.github.com>
Co-authored-by: Hang Su <hang.su@algorand.com>
Co-authored-by: Hang Su <87964331+ahangsu@users.noreply.github.com>
* add indexer impl in sdk

* merge step for indexer

* add indexer confirmed steps

* add indexer confirmed steps

* use sleep step

* change to sleep on ms

* per new step expectation

* unify with applications.boxes

* phrasing

* Update .test-env

* minor
.test-env Outdated Show resolved Hide resolved
@ahangsu ahangsu marked this pull request as ready for review September 20, 2022 17:14
Copy link
Contributor

@jasonpaulos jasonpaulos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I plan to make a child PR to resolve the issues I pointed out here

src/types/transactions/base.ts Show resolved Hide resolved
src/boxStorage.ts Outdated Show resolved Hide resolved
src/transaction.ts Outdated Show resolved Hide resolved
src/client/v2/algod/algod.ts Outdated Show resolved Hide resolved
src/client/v2/indexer/indexer.ts Outdated Show resolved Hide resolved
src/client/v2/indexer/indexer.ts Outdated Show resolved Hide resolved
src/makeTxn.ts Outdated Show resolved Hide resolved
src/makeTxn.ts Outdated Show resolved Hide resolved
src/makeTxn.ts Outdated Show resolved Hide resolved
src/makeTxn.ts Outdated Show resolved Hide resolved
src/makeTxn.ts Outdated Show resolved Hide resolved
src/makeTxn.ts Outdated Show resolved Hide resolved
src/makeTxn.ts Outdated Show resolved Hide resolved
Copy link
Contributor

@jasonpaulos jasonpaulos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I contributed to this PR, so my approval should not be taken by itself

@michaeldiamant michaeldiamant changed the title Boxes: Box storage feature branch Boxes: Add support for Boxes Oct 31, 2022
Refresh integration branch before merge
.test-env Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants