AMPL secured by Meter Passport Token Logo

AMPL [AMPL secured by Meter Passport] Token

About AMPL

Listings

Token 2 years
CoinGecko 4 years
CoinMarketCap 4 years
white paper

Ampleforth is a digital-asset-protocol for smart commodity-money.

The smart commodity money with a unique elastic supply protocol. AMPL supply expands and contracts in response to it’s price deviating from a 1 USD target. Deviations result in a supply change of AMPLs once every 24 hours, increasing or decreasing the number of tokens in each holder’s wallet pro-rata. Ampleforth is the only asset in the world with this elastic supply property, and therefore has counter-cyclical trading pressure and is uncorrelated with other digital assets such as Bitcoin.

Laser Scorebeta Last Audit: 23 April 2022

report
Token seems to be legit.

Anti-Scam

Links

UpgradeabilityProxy.constructor(address,bytes)._logic (#268) lacks a zero-check on :
- (success) = _logic.delegatecall(_data) (#272)
AdminUpgradeabilityProxy.upgradeToAndCall(address,bytes).newImplementation (#424) lacks a zero-check on :
- (success) = newImplementation.delegatecall(data) (#426)
Check that the address is not zero.

Additional information: link

Modifier AdminUpgradeabilityProxy.ifAdmin() (#373-379) does not always execute _; or revert
All the paths in a modifier must execute _ or revert.

Additional information: link

AdminUpgradeabilityProxy.constructor(address,address,bytes)._admin (#348) shadows:
- AdminUpgradeabilityProxy._admin() (#433-438) (function)
Rename the local variables that shadow another component.

Additional information: link

Proxy._delegate(address) (#42-61) uses assembly
- INLINE ASM (#43-60)
Address.isContract(address) (#106-115) uses assembly
- INLINE ASM (#113)
Address._verifyCallResult(bool,bytes,string) (#227-244) uses assembly
- INLINE ASM (#236-239)
UpgradeabilityProxy._implementation() (#294-299) uses assembly
- INLINE ASM (#296-298)
UpgradeabilityProxy._setImplementation(address) (#314-322) uses assembly
- INLINE ASM (#319-321)
AdminUpgradeabilityProxy._admin() (#433-438) uses assembly
- INLINE ASM (#435-437)
AdminUpgradeabilityProxy._setAdmin(address) (#444-450) uses assembly
- INLINE ASM (#447-449)
Do not use evm assembly.

Additional information: link

Different versions of Solidity is used:
- Version used: ['>=0.6.2<0.8.0', '^0.6.0']
- ^0.6.0 (#5)
- >=0.6.2<0.8.0 (#83)
- ^0.6.0 (#249)
- ^0.6.0 (#327)
Use one Solidity version.

Additional information: link

Address._verifyCallResult(bool,bytes,string) (#227-244) is never used and should be removed
Address.functionCall(address,bytes) (#159-161) is never used and should be removed
Address.functionCall(address,bytes,string) (#169-171) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#184-186) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#194-201) is never used and should be removed
Address.functionStaticCall(address,bytes) (#209-211) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#219-225) is never used and should be removed
Address.sendValue(address,uint256) (#133-139) is never used and should be removed
Proxy._implementation() (#34) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version^0.6.0 (#5) allows old versions
Pragma version>=0.6.2<0.8.0 (#83) is too complex
Pragma version^0.6.0 (#249) allows old versions
Pragma version^0.6.0 (#327) allows old versions
solc-0.6.8 is not recommended for deployment
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.

Additional information: link

Low level call in Address.sendValue(address,uint256) (#133-139):
- (success) = recipient.call{value: amount}() (#137)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#194-201):
- (success,returndata) = target.call{value: value}(data) (#199)
Low level call in Address.functionStaticCall(address,bytes,string) (#219-225):
- (success,returndata) = target.staticcall(data) (#223)
Low level call in UpgradeabilityProxy.constructor(address,bytes) (#268-275):
- (success) = _logic.delegatecall(_data) (#272)
Low level call in AdminUpgradeabilityProxy.upgradeToAndCall(address,bytes) (#424-428):
- (success) = newImplementation.delegatecall(data) (#426)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Holders:
No disclosed threats


Telegram account link seems to be invalid


Unable to find Youtube account


Unable to find audit link on the website

No disclosed threats

Price for AMPL

News for AMPL