Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@bohendo/makerkeeper
Advanced tools
MakerDAO is an amazing project which provides a base for bringing various financial applications - such as loan, insurance and leveraging to the blockchain. Current dashboard provided by the makerDAO team can get a bit confusing and requires a lot of atomic steps. If a new user wants to take loan against ether by opening a CDP, he would have to go through a series of steps and signing each transaction individually:
In this project I have tried to provide tools that would provide a simpler way of accomplishing the same thing in a in fewer steps. So far I have created the backend which provides high level functions consolidating several transactions and others do the math required to reach a specific state. Next I will use react and IPFS to provide a dashboard frontend that even non technical users can use.
ETH_ADDRESS
and remotessh
to the ethereum account address and the server hostname of your server respectively.echo '{"jsonrpc":"2.0","method":"personal_importRawKey","params":["secretKey","secretPassword"],"id":1}' | sudo nc -U /var/lib/docker/volumes/ethprovider_ipc/_data/geth.ipc
Oasis: decentralized exchange
_best
(address, address) => uint256
: best offer to sell ERC20 token at address 1 to buy ERC20 token at address 2, offers
(uint256) => uint256, address, uint256, address, address, uint64
: pay_amt of token address 1 to get buy_amt of token address 2 offered by address 3 owner at timestamp
buy
(uint256, uint256)
: from offer ID buy
Wrapped ETH; an ERC20 token that is exchangeable 1:1 with Ether. Only exists to provide standard ERC20 methods to Ethereum's native currency.
name
() => string
, totalSupply
() => uint256
, decimals
() => uint8
, symbol
() => string
, balanceOf
(address) => uint256
, allowance
(address,address) => uint256
: how many tokens owned by address 1 can be spent by address 2
approve
(address guy, uint wad) => bool
: permit guy
to spend up to wad
of the sender's WETH balance, deposit
() => null
: send ETH to this method to receive the equivalent amount of WETH, transfer
(address dst, uint wad) => bool
: transfer wad
WETH from the sender's account to dst
, transferFrom
(address src, address dst, uint wad) => bool
: transfer wad
WETH from src
to dst
, withdraw
(uint wad) => null
: destroy wad
WETH and receive the equivalent amount of ETH
Approval
(address indexed src, address indexed guy, uint256 wad)
, Transfer
(address indexed src, address indexed dst, uint256 wad)
, Deposit
(address indexed dst, uint256 wad)
, Withdrawal
(address indexed src, uint256 wad)
Pooled ETH; an ERC20 token that's exchangeable 1:1 with WETH. This is the collateral that can be locked up in a MakerDAO CDP.
allowance
(address,address) => uint256
: how many tokens owned by arg1 address are allowed to be spent by arg2 address, authority
() => address
, balanceOf
(address) => uint256
, decimals
() => uint256
, name
() => bytes32
, owner
() => address
, stopped
() => bool
, symbol
() => bytes32
, totalSupply
() => uint256
approve
(address) => bool
: allow some address to spend the message sender's PETH, approve
(address,uint256) => bool
: allow some address to spend up to uint256 of the message sender's PETH, move
(address,address,uint256) => null
: alias for transferFrom, pull
(address,uint256) => null
: transfer uint256 PETH from some address to the message sender, push
(address,uint256) => null
: alias for transfer, transfer
(address,uint256) => bool
: transfer uint256 PETH from the message sender to some address, transferFrom
(address,address,uint256) => bool
: transfer uint256 PETH from arg1 address to arg2 address
Approval
(address indexed src, address indexed guy, uint256 wad)
, Burn
(address indexed guy, uint256 wad)
, LogNote
(bytes4 indexed sig, address indexed guy, bytes32 indexed foo, bytes32 indexed bar, uint256 wad, bytes fax)
, Mint
(address indexed guy, uint wad)
, Transfer
(address indexed src, address indexed dst, uint256 wad)
MakerDAO governance token; an ERC20 token that's used to pay the MakerDAO stability/governance fees. Holders may also have voting rights in some decisions eg setting the stability fee.
allowance
(address,address) => uint256
: how many tokens owned by arg1 address are allowed to be spent by arg2 address, authority
() => address
, balanceOf
(address) => uint256
, decimals
() => uint256
, name
() => bytes32
, owner
() => address
, stopped
() => bool
, symbol
() => bytes32
, totalSupply
() => uint256
approve
(address) => bool
: allow some address to spend the message sender's MKR, approve
(address,uint256) => bool
: allow some address to spend up to uint256 of the message sender's MKR, move
(address,address,uint256) => null
: alias for transferFrom, pull
(address,uint256) => null
: transfer uint256 MKR from some address to the message sender, push
(address,uint256) => null
: alias for transfer, transfer
(address,uint256) => bool
: transfer uint256 MKR from the message sender to some address, transferFrom
(address,address,uint256) => bool
: transfer uint256 MKR from arg1 address to arg2 address
Approval
(address indexed owner, address indexed guy, uint256 wad)
, Burn
(address indexed guy, uint256 wad)
, LogNote
(bytes4 indexed sig, address indexed guy, bytes32 indexed foo, bytes32 indexed bar, uint256 wad, bytes fax)
, Mint
(address indexed guy, uint wad)
, Transfer
(address indexed owner, address indexed dst, uint256 wad)
DAI stable coin; an ERC20 token that's pegged to the USD. Can be minted/borrowed after locking up sufficient collateral, used to pay off debt & unlock collateral.
allowance
(address,address) => uint256
: how many tokens owned by arg1 address are allowed to be spent by arg2 address, authority
() => address
, balanceOf
(address) => uint256
, decimals
() => uint256
, name
() => bytes32
, owner
() => address
, stopped
() => bool
, symbol
() => bytes32
, totalSupply
() => uint256
approve
(address) => bool
: allow some address to spend the message sender's DAI, approve
(address,uint256) => bool
: allow some address to spend up to uint256 of the message sender's DAI, move
(address,address,uint256) => null
: alias for transferFrom, pull
(address,uint256) => null
: transfer uint256 DAI from some address to the message sender, push
(address,uint256) => null
: alias for transfer, transfer
(address,uint256) => bool
: transfer uint256 DAI from the message sender to some address, transferFrom
(address,address,uint256) => bool
: transfer uint256 DAI from arg1 address to arg2 address
Approval
(address indexed src, address indexed guy, uint256 wad)
, Burn
(address indexed guy, uint256 wad)
, LogNote
(bytes4 indexed sig, address indexed guy, bytes32 indexed foo, bytes32 indexed bar, uint256 wad, bytes fax)
, Mint
(address indexed guy, uint wad)
, Transfer
(address indexed src, address indexed dst, uint256 wad)
Saves a list of ETH market prices & calculates their median.
authority
() => address
, compute
() => [bytes32,bool]
: compute a new median based on saved values, indexes
(address) => bytes12
: to find out which price some authorized address submitted, min
() => uint96
, next
() => bytes12
, owner
() => address
, peek
() => [byes32,bool]
: return the last saved computation and whether or not it's still set, read
() => bytes32
: returns the latest market price if it's been set, values
(bytes12) => address
poke
() => null
, poke
(bytes32) => null
, compute and save a new median based on prices set my authorized addresses, set
(address) => null
set
(bytes,address) => null
, unset
(address) => null
unset
(bytes12) => null
LogNote
(bytes4 indexed sig, address indexed guy, bytes32 indexed foo, bytes32 indexed bar, uint wad, bytes fax)
Saves a list of MKR market prices & calculates their median.
authority
() => address
, compute
() => [bytes32,bool]
: compute a new median based on saved values, indexes
(address) => bytes12
: to find out which price some authorized address submitted, min
() => uint96
, next
() => bytes12
, owner
() => address
, peek
() => [byes32,bool]
: return the last saved computation and whether or not it's still set, read
() => bytes32
: returns the latest market price if it's been set, values
(bytes12) => address
poke
() => null
, poke
(bytes32) => null
, compute and save a new median based on prices set my authorized addresses, set
(address) => null
set
(bytes,address) => null
, unset
(address) => null
unset
(bytes12) => null
LogNote
(bytes4 indexed sig, address indexed guy, bytes32 indexed foo, bytes32 indexed bar, uint wad, bytes fax)
LogValue
(bytes32 val)
authority
() => address
fix
() => uint256
joy
() => uint256
owner
() => uint256
sai
() => address
sin
() => address
skr
() => address
tub
() => address
woe
() => uint256
ask
(uint256) => uint256
bid
(uint256) => uint256
boom
(uint256) => null
bust
(uint256) => null
cage
(uint256) => null
cash
(uint256) => null
heal
() => null
mock
(uint256) => null
mold
(bytes32) => null
s2s
() => uint256
vent
() => null
safe(bytes32 ) => bool
, tag() => uint
: collateral price ref per skr, ask(uint wad) => uint
: collateral token per skr
lock(bytes32 , uint )
: transfers collateral from owner to system, draw(bytes32 , uint )
: mints new DAI for owner of CDP, free(bytes32 , uint )
: reclaim collateral, wipe(bytes32 , uint )
: return DAI and reduce debt issued, shut(bytes32 )
: closes the CDP account, **bite(bytes32 )**
: trigger liquidation
Mint(address indexed , uint )
, Burn(address indexed , uint )
, LogNewCup(address indexed , bytes32 )
, event LogNewCup(address indexed , bytes32 )
: creates new cdp
FAQs
Tools for playing with MakerDAO contracts
The npm package @bohendo/makerkeeper receives a total of 1 weekly downloads. As such, @bohendo/makerkeeper popularity was classified as not popular.
We found that @bohendo/makerkeeper demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.