
Research
Namastex.ai npm Packages Hit with TeamPCP-Style CanisterWorm Malware
Malicious Namastex.ai npm packages appear to replicate TeamPCP-style Canister Worm tradecraft, including exfiltration and self-propagation.
@slide-computer/signer-agent
Advanced tools
Initiate transactions with signers on the Internet Computer
Initiate transactions with signers on the Internet Computer.
Using SignerAgent:
npm i --save @slide-computer/signer-agent
import { SignerAgent } from "@slide-computer/signer-agent";
To get started with the signerAgent, run
const accounts = await signer.accounts();
const agent = await SignerAgent.create({
signer,
account: accounts[0].owner
});
The signerAgent can initiate a transaction with
import {IcrcLedgerCanister} from "@dfinity/ledger-icrc";
const icpLedger = IcrcLedgerCanister.create({
agent,
canisterId: ICP_LEDGER_CANISTER_ID,
});
const blockIndex = await icpLedger.transfer({
to: TARGET_ACCOUNT,
amount: 100_000_000
});
The signerAgent can automatically batch calls with
import {IcrcLedgerCanister} from "@dfinity/ledger-icrc";
const icpLedger = IcrcLedgerCanister.create({
agent,
canisterId: ICP_LEDGER_CANISTER_ID,
});
const ckBtcLedger = IcrcLedgerCanister.create({
agent,
canisterId: CK_BTC_LEDGER_CANISTER_ID,
});
// If a signer does not support batch calls, signerAgent will
// automatically fallback to executing the calls one by one.
const [icpBlockIndex, ckBtcBlockIndex] = await Promise.all([
icpLedger.approve({
spender: TARGET_ACCOUNT,
amount: 70_000_000
}),
ckBtcLedger.approve({
spender: TARGET_ACCOUNT,
amount: 1_000_000
})
]);
For more advanced use cases, the signerAgent can also manually batch calls with
import {IcrcLedgerCanister} from "@dfinity/ledger-icrc";
const icpLedger = IcrcLedgerCanister.create({
agent,
canisterId: ICP_LEDGER_CANISTER_ID,
});
const ckBtcLedger = IcrcLedgerCanister.create({
agent,
canisterId: CK_BTC_LEDGER_CANISTER_ID,
});
agent.batch(); // Below execution of calls needs to be triggered manually
const icpBlockIndexPromise = icpLedger.approve({
spender: TARGET_ACCOUNT,
amount: 70_000_000
});
const ckBtcBlockIndexPromise = ckBtcLedger.approve({
spender: TARGET_ACCOUNT,
amount: 1_000_000
});
agent.batch() // Indicate that below calls should be executed by the signer after the above
const swapResultPromise = backendActor.swapTokens(swapId);
// Trigger execution of all the above scheduled calls
//
// If a signer does not support batch calls, signerAgent will
// automatically fallback to executing the calls one by one.
await agent.execute();
// Get individual results
const icpBlockIndex = await icpBlockIndexPromise;
const ckBtcBlockIndex = await ckBtcBlockIndexPromise;
const swapResult = await swapResultPromise;
FAQs
Initiate transactions with signers on the Internet Computer
The npm package @slide-computer/signer-agent receives a total of 707 weekly downloads. As such, @slide-computer/signer-agent popularity was classified as not popular.
We found that @slide-computer/signer-agent demonstrated a healthy version release cadence and project activity because the last version was released less than 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
Malicious Namastex.ai npm packages appear to replicate TeamPCP-style Canister Worm tradecraft, including exfiltration and self-propagation.

Product
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.