
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
@agoric/store
Advanced tools
A wrapper around JavaScript Map.
Store adds some additional functionality on top of Map.
Store distinguishes between initializing (init
) a (key,
value) pair and resetting the key to a different value (set
),
whereas Map doesn't. This means you can use the Store
abstraction without having to check whether the key already exists.
This is because the method that you call (init
or set
) marks
your intention and does it for you.
You can use the Store methods in a functional programming
pattern, which you can't with Map. For instance, you can create
a new function const getPurse = Store.get
and you can do
myArray.map(Store.get)
. You can't do either of these with
Map, because the Map methods are not tied to a particular
Map instance.
See makeWeakStore
for the wrapper around JavaScript's WeakMap abstraction.
An External Store is defined by its maker function, and provides abstractions that are compatible with large, synchronous secondary storage that can be paged in and out of local memory.
import { makeExternalStore } from '@agoric/store';
// Here is us defining an instance store for 'hello' objects.
const estore = makeExternalStore((msg = 'Hello') => ({
hello(nickname) {
return `${msg}, ${nickname}!`;
},
}));
const h = estore.makeInstance('Hi');
h.hello('friend') === 'Hi, friend!';
const wm = estore.makeWeakMap('Hello object');
wm.init(h, 'data');
// ... time passes and h is paged out and reloaded.
wm.get(h) === 'data';
wm.set(h, 'new-data');
// ... time passes and h is paged out and reloaded.
map.delete(h);
Note that when you import and use the makeExternalStore
function, the platform
you are running on may rewrite your code to use a more scalable implementation
of that function. If it is not rewritten, then makeExternalStore
will use
makeMemoryExternalStore
, a full-featured, though in-memory-only
implementation. If you don't desire rewriting, then use
makeMemoryExternalStore
directly.
FAQs
Wrapper for JavaScript map
The npm package @agoric/store receives a total of 22,338 weekly downloads. As such, @agoric/store popularity was classified as popular.
We found that @agoric/store demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 10 open source maintainers 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.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.