Sui Code Bug or Feature Request
Author: 0xNeshiCreated Jun 23, 2026Updated Aug 27, 2026
Steps to Reproduce Issue
- Clone the
OpenZeppelin/contracts-suirepo at the exact commit77d99e9a642bbb2631fb91cbede5518ed1597c1d: https://github.com/OpenZeppelin/contracts-sui/tree/77d99e9a642bbb2631fb91cbede5518ed1597c1d - Navigate to the file: contracts/sale/sources/vested_claim.move
- Open terminal at the root of the repo
- Run
sui move build --build-env testnet --path contracts/sale
Expected Result
Build should pass with no lint warnings.
Actual Result
The build outputs a lint warning:
INCLUDING DEPENDENCY MoveStdlib
INCLUDING DEPENDENCY Sui
INCLUDING DEPENDENCY openzeppelin_finance
INCLUDING DEPENDENCY openzeppelin_math
BUILDING openzeppelin_sale
warning[Lint W99000]: possible owned object share
┌─ ./sources/vested_claim.move:56:5
│
56 │ transfer::public_share_object(wallet);
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ │ │
│ │ Creating a fresh object and sharing it within the same function will ensure this does not abort.
│ Potential abort from a (potentially) owned object created by a different transaction.
│
┌─ ../finance/sources/vesting_wallet.move:127:90
│
127 │ public struct VestingWallet<phantom S: drop, P: copy + drop + store, phantom C> has key, store {
│ ----- Potentially an owned object because 'store' grants access to public transfers
·
263 │ ): VestingWallet<S, P, C> {
│ ---------------------- A potentially owned object coming from here
│
= This warning can be suppressed with '#[allow(lint(share_owned))]' applied to the 'module' or module member ('const', 'fun', or 'struct')
Please report feedback on the linter warnings at https://forums.sui.io
Total number of linter warnings suppressed: 1 (unique lints: 1)This is a potentially redundant lint warning, as the function in which the warning appears actually does both create a fresh object and does immediately share it.
System Information
- OS: Ubuntu 22.04.5 LTS
- Compiler:
sui 1.73.2-1f6e1e6dd72d
Source: MystenLabs/sui