Manifest and Permission Issues
Wildcard Permission Rejection
error: wildcard contract permission detected
--> manifest generation
|
= note: contract call to dynamic target requires {"contract":"*","methods":"*"}
= help: use --manifest-permissions to supply explicit overrides, or remove --deny-wildcard-contractsCause: Your code calls a contract through a dynamic address (not a compile-time constant), and you compiled with --deny-wildcard-contracts.
Solutions:
Replace dynamic calls with fixed-target wrappers:
solidity// ❌ Dynamic target — forces wildcard permission Syscalls.contractCall(dynamicAddr, "transfer", ...); // ✅ Fixed target — generates specific permission NativeCalls.gasTransfer(from, to, amount, "");If dynamic dispatch is unavoidable, supply explicit permissions:
bashneo-solc MyContract.sol -I devpack \ --manifest-permissions '{"contract":"0xabcd...","methods":["transfer"]}' \ -o build/MyContractRemove the strict flags for development (not recommended for production):
bashneo-solc MyContract.sol -I devpack -o build/MyContract # Without --deny-wildcard-contracts, wildcards are allowed with a warning
Standards Not Detected
info: contract does not implement any recognized NEP standard
--> manifest generation
|
= note: supportedstandards will be emptyCause: The compiler's auto-detection didn't find a complete set of required methods.
Checklist for NEP-17 detection:
- [ ]
symbol()— public/external, returns string - [ ]
decimals()— public/external, returns integer - [ ]
totalSupply()— public/external, returns integer - [ ]
balanceOf(address)— public/external, returns integer - [ ]
transfer(address, address, uint256, Any)— public/external, 4 parameters - [ ]
ownerOfmust NOT be present (its presence triggers NEP-11 instead)
Checklist for NEP-11 detection:
- [ ]
balanceOf(address)ANDownerOf(bytes32)both present - [ ] At least one of:
transfer,transferFrom,tokensOf
TIP
After compilation, verify detection results:
bash
cat build/MyContract/MyContract.manifest.json | jq '.supportedstandards'