-
Notifications
You must be signed in to change notification settings - Fork 67
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
Support for constructor-related functionality in Soroban SDK. #1327
Conversation
a7ac4f4
to
5c43fca
Compare
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.
Couple small asks otherwise lgtm.
5cdb384
to
6385e06
Compare
This fix is extracted from #1327 by @dmkozh. Co-authored-by: Dmytro Kozhevin <[email protected]>
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.
Nice catching the testutils bug. I'd like to merge the testutils fix separately in a v21 release, and I've opened a PR to do that:
Other than that, I left a couple minor comments inline, and it LGTM.
### What Panic if the number of args being passed to a natively registered contract don't match the number of args the contract function expects. ### Why This bug exists only in the testutils path of invoking a natively registered contract and does not impact WASM registered contracts, or the env as deployed. If a native contract is invoked with too few arguments, a panic occurs with an index out of bounds errors that is not intuitive to debug. The panic displayed to the developer should be as intuitive as possible. - Before: `index out of bounds: the len is 1 but the index is 1` - After: `invalid number of input arguments: 2 expected, got 1` If a native contract is invoked with too many arguments, no panic occurs, the additional arguments are simply ignored. The behaviour of invoking natively registered contracts in testutils should be as consistent as possible to invoking contracts on a deployed network. In both of these cases the invoke fails. - Before: no panic - After: `invalid number of input arguments: 2 expected, got 3` Thanks to @dmkozh who fixed this bug and proposed the better error experience in #1327 which is destined for the next major release of the sdk v22, and this pull request extracts the fix in isolation so we can release a bug fix release of the sdk v21. --------- Co-authored-by: Dmytro Kozhevin <[email protected]>
The main non-test changes are updates for the auth-related data structures and a wrapper for the new deployer function (create_contract_with_constructor). The remaining changes concern the test infrastructure support, specifically contract creation utilities that support passing constructor arguments.
What
The main non-test changes are updates for the auth-related data structures and a wrapper for the new deployer function (
create_contract_with_constructor
).The remaining changes concern the test infrastructure support, specifically contract creation utilities that support passing constructor arguments.
Why
Supporting constructors introduced in protocol 22.
Known limitations
N/A