New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@solflare-wallet/pfp

Package Overview
Dependencies
Maintainers
3
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@solflare-wallet/pfp - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

2

lib/cjs/index.d.ts

@@ -5,3 +5,3 @@ import { Connection, PublicKey, Transaction } from '@solana/web3.js';

export declare function getProfilePicture(connection: Connection, publicKey: PublicKey, config?: ProfilePictureConfig): Promise<ProfilePicture>;
export declare function createSetProfilePrictureTransaction(ownerPublicKey: PublicKey, mintPublicKey: PublicKey, tokenAccountPublicKey: PublicKey): Promise<Transaction>;
export declare function createSetProfilePictureTransaction(ownerPublicKey: PublicKey, mintPublicKey: PublicKey, tokenAccountPublicKey: PublicKey): Promise<Transaction>;
export declare function createRemoveProfilePictureTransaction(ownerPublicKey: PublicKey): Promise<Transaction>;

@@ -39,3 +39,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.createRemoveProfilePictureTransaction = exports.createSetProfilePrictureTransaction = exports.getProfilePicture = exports.PROFILE_PICTURE_PROGRAM = void 0;
exports.createRemoveProfilePictureTransaction = exports.createSetProfilePictureTransaction = exports.getProfilePicture = exports.PROFILE_PICTURE_PROGRAM = void 0;
var web3_js_1 = require("@solana/web3.js");

@@ -47,16 +47,16 @@ var mpl_token_metadata_1 = require("@metaplex-foundation/mpl-token-metadata");

function getProfilePicture(connection, publicKey, config) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
if (config === void 0) { config = { fallback: true }; }
return __awaiter(this, void 0, void 0, function () {
var profilePictureAccountPublicKey, profilePictureAccount, profilePictureData, tokenAccount, nftMetadataAccountPublicKey, nftMetadata, imageUrl, err_1;
return __generator(this, function (_r) {
switch (_r.label) {
var profilePictureAccountPublicKey, profilePictureAccount, profilePictureData, tokenAccount, nftMetadataAccountPublicKey, nftMetadata, metadata, err_1;
return __generator(this, function (_t) {
switch (_t.label) {
case 0:
_r.trys.push([0, 7, , 8]);
_t.trys.push([0, 7, , 8]);
return [4 /*yield*/, (0, utils_1.getProfilePicturePDA)(publicKey)];
case 1:
profilePictureAccountPublicKey = _r.sent();
profilePictureAccountPublicKey = _t.sent();
return [4 /*yield*/, connection.getAccountInfo(profilePictureAccountPublicKey)];
case 2:
profilePictureAccount = _r.sent();
profilePictureAccount = _t.sent();
if (!profilePictureAccount) {

@@ -68,3 +68,3 @@ throw new Error('PDA is empty');

case 3:
tokenAccount = _r.sent();
tokenAccount = _t.sent();
if (!tokenAccount) {

@@ -87,18 +87,25 @@ throw new Error('No token account');

case 4:
nftMetadataAccountPublicKey = _r.sent();
nftMetadataAccountPublicKey = _t.sent();
return [4 /*yield*/, mpl_token_metadata_1.Metadata.load(connection, nftMetadataAccountPublicKey)];
case 5:
nftMetadata = _r.sent();
nftMetadata = _t.sent();
if (!((_q = (_p = nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.data) === null || _p === void 0 ? void 0 : _p.data) === null || _q === void 0 ? void 0 : _q.uri)) {
throw new Error('No metadata URL');
}
return [4 /*yield*/, (0, utils_1.getImageUrlFromMetadataUrl)(nftMetadata.data.data.uri)];
return [4 /*yield*/, (0, utils_1.getMetadataFromUrl)(nftMetadata.data.data.uri)];
case 6:
imageUrl = _r.sent();
metadata = _t.sent();
if (!metadata) {
throw new Error('No metadata');
}
return [2 /*return*/, {
isAvailable: true,
url: (0, utils_1.generateUrl)(imageUrl, publicKey, config)
url: (0, utils_1.generateUrl)((metadata === null || metadata === void 0 ? void 0 : metadata.image) || null, publicKey, config),
name: ((_s = (_r = nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.data) === null || _r === void 0 ? void 0 : _r.data) === null || _s === void 0 ? void 0 : _s.name) || '',
metadata: metadata,
tokenAccount: profilePictureData.nftTokenAccount,
mintAccount: profilePictureData.nftMint
}];
case 7:
err_1 = _r.sent();
err_1 = _t.sent();
return [2 /*return*/, {

@@ -114,3 +121,3 @@ isAvailable: false,

exports.getProfilePicture = getProfilePicture;
function createSetProfilePrictureTransaction(ownerPublicKey, mintPublicKey, tokenAccountPublicKey) {
function createSetProfilePictureTransaction(ownerPublicKey, mintPublicKey, tokenAccountPublicKey) {
return __awaiter(this, void 0, void 0, function () {

@@ -145,3 +152,3 @@ var profilePictureAccountPublicKey, nftMetadataAccountPublicKey, transaction;

}
exports.createSetProfilePrictureTransaction = createSetProfilePrictureTransaction;
exports.createSetProfilePictureTransaction = createSetProfilePictureTransaction;
function createRemoveProfilePictureTransaction(ownerPublicKey) {

@@ -148,0 +155,0 @@ return __awaiter(this, void 0, void 0, function () {

@@ -5,2 +5,6 @@ import { PublicKey } from '@solana/web3.js';

url: string;
name?: string;
metadata?: any;
tokenAccount?: PublicKey;
mintAccount?: PublicKey;
}

@@ -7,0 +11,0 @@ export interface ProfilePictureConfig {

@@ -5,3 +5,3 @@ import { AccountInfo, PublicKey } from '@solana/web3.js';

export declare function getProfilePicturePDA(publicKey: PublicKey): Promise<PublicKey>;
export declare function getImageUrlFromMetadataUrl(url: string): Promise<string | null>;
export declare function getMetadataFromUrl(url: string): Promise<any>;
export declare function generateUrl(url: string | null, ownerPublicKey: PublicKey, config: ProfilePictureConfig): string;

@@ -58,3 +58,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.generateUrl = exports.getImageUrlFromMetadataUrl = exports.getProfilePicturePDA = exports.decodeProfilePictureAccount = void 0;
exports.generateUrl = exports.getMetadataFromUrl = exports.getProfilePicturePDA = exports.decodeProfilePictureAccount = void 0;
var web3_js_1 = require("@solana/web3.js");

@@ -91,5 +91,5 @@ var jdenticon_1 = require("jdenticon");

exports.getProfilePicturePDA = getProfilePicturePDA;
function getImageUrlFromMetadataUrl(url) {
function getMetadataFromUrl(url) {
return __awaiter(this, void 0, void 0, function () {
var response, data, err_1;
var response, err_1;
return __generator(this, function (_a) {

@@ -106,5 +106,3 @@ switch (_a.label) {

return [4 /*yield*/, response.json()];
case 2:
data = _a.sent();
return [2 /*return*/, data.image || null];
case 2: return [2 /*return*/, (_a.sent()) || null];
case 3:

@@ -118,3 +116,3 @@ err_1 = _a.sent();

}
exports.getImageUrlFromMetadataUrl = getImageUrlFromMetadataUrl;
exports.getMetadataFromUrl = getMetadataFromUrl;
function generateUrl(url, ownerPublicKey, config) {

@@ -128,4 +126,4 @@ if (url) {

}
return 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgaWQ9ImJvcmRlcnMtYW5kLWJhY2tncm91bmRzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxKSI+PGc+PHBhdGggZD0ibTAgMGgxMHYxaC05djE0aDF2MWgtMnoiLz48cGF0aCBkPSJtMTAgNGg0djNoLTF2LTJoLTN6Ii8+PHBhdGggZD0ibTE0IDE2di02aC0xdjVoLTV2MXoiLz48L2c+PHBhdGggZD0ibTEyIDE0di0zaC0xdjJoLTJ2MXoiIGZpbGw9IiNiY2JjYzMiLz48cGF0aCBkPSJtMTAgMGgxdjFoMXYxaDF2MWgxdjFoLTF2LTFoLTF2LTFoLTF2MmgtMXoiIGZpbGw9IiM4Nzg3ODciLz48cGF0aCBkPSJtMiAyaDh2M2gydjJoLTR2NWgtMnYxaC0ydjFoLTJ6IiBmaWxsPSIjYmNiY2MzIi8+PC9nPjxnIGlkPSJsZWZ0ZXllIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxKSI+PHBhdGggZD0ibTUgM2gydjNoLTN2LTJoMXYxaDF2LTFoLTF6IiBmaWxsPSIjMDA4OTFlIi8+PHBhdGggZD0ibTUgNGgxdjFoLTF6IiBmaWxsPSIjMDBmMjQ4Ii8+PHBhdGggZD0ibTcgNGgxdjJoLTF2MWgtMnYtMWgyeiIvPjwvZz48ZyBpZD0icmlnaHRleWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEpIj48cGF0aCBkPSJtOCA3aDN2MmgtMXYtMWgtMXYxaDF2MWgtMnoiIGZpbGw9IiMwMDY0ZmIiLz48cGF0aCBkPSJtOSA4aDF2MWgtMXoiIGZpbGw9IiMwMGZiZmUiLz48cGF0aCBkPSJtMTAgOWgxdjFoLTF6IiBmaWxsPSIjMDAzMjkzIi8+PHBhdGggZD0ibTExIDdoMXYyaC0xeiIvPjxwYXRoIGQ9Im04IDEwaDJ2MWgtMnoiLz48L2c+PGcgaWQ9Im1vdXRoIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxKSI+PHBhdGggZD0ibTMgOGgxdjFoMXYxaDF2MWgxdjFoLTF2LTFoLTF2LTFoLTF2LTFoLTF6IiBmaWxsPSIjZmYzOTAwIi8+PHBhdGggZD0ibTMgOWgxdjFoMXYxaDF2MWgtM3oiIGZpbGw9IiNmNzNhZTEiLz48cGF0aCBkPSJtMyAxMmgzdjFoLTN6Ii8+PC9nPjwvc3ZnPg==';
return 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaGVpZ2h0PSIxMDAiIHdpZHRoPSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgaWQ9ImJvcmRlcnMtYW5kLWJhY2tncm91bmRzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1LDQpIj48cGF0aCBkPSJtMCAwaDEwdjFoLTl2MTRoMXYxaC0yeiIvPjxwYXRoIGQ9Im0xMCA0aDR2M2gtMXYtMmgtM3oiLz48cGF0aCBkPSJtMTQgMTZ2LTZoLTF2NWgtNXYxeiIvPjxwYXRoIGQ9Im0xMiAxNHYtM2gtMXYyaC0ydjF6IiBmaWxsPSIjYmNiY2MzIi8+PHBhdGggZD0ibTEwIDBoMXYxaDF2MWgxdjFoMXYxaC0xdi0xaC0xdi0xaC0xdjJoLTF6IiBmaWxsPSIjODc4Nzg3Ii8+PHBhdGggZD0ibTIgMmg4djNoMnYyaC00djVoLTJ2MWgtMnYxaC0yeiIgZmlsbD0iI2JjYmNjMyIvPjwvZz48ZyBpZD0ibGVmdGV5ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw0KSI+PHBhdGggZD0ibTUgM2gydjNoLTN2LTJoMXYxaDF2LTFoLTF6IiBmaWxsPSIjMDA4OTFlIi8+PHBhdGggZD0ibTUgNGgxdjFoLTF6IiBmaWxsPSIjMDBmMjQ4Ii8+PHBhdGggZD0ibTcgNGgxdjJoLTF2MWgtMnYtMWgyeiIvPjwvZz48ZyBpZD0icmlnaHRleWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUsNCkiPjxwYXRoIGQ9Im04IDdoM3YyaC0xdi0xaC0xdjFoMXYxaC0yeiIgZmlsbD0iIzAwNjRmYiIvPjxwYXRoIGQ9Im05IDhoMXYxaC0xeiIgZmlsbD0iIzAwZmJmZSIvPjxwYXRoIGQ9Im0xMCA5aDF2MWgtMXoiIGZpbGw9IiMwMDMyOTMiLz48cGF0aCBkPSJtMTEgN2gxdjJoLTF6Ii8+PHBhdGggZD0ibTggMTBoMnYxaC0yeiIvPjwvZz48ZyBpZD0ibW91dGgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUsNCkiPjxwYXRoIGQ9Im0zIDhoMXYxaDF2MWgxdjFoMXYxaC0xdi0xaC0xdi0xaC0xdi0xaC0xeiIgZmlsbD0iI2ZmMzkwMCIvPjxwYXRoIGQ9Im0zIDloMXYxaDF2MWgxdjFoLTN6IiBmaWxsPSIjZjczYWUxIi8+PHBhdGggZD0ibTMgMTJoM3YxaC0zeiIvPjwvZz48L3N2Zz4=';
}
exports.generateUrl = generateUrl;

@@ -5,3 +5,3 @@ import { Connection, PublicKey, Transaction } from '@solana/web3.js';

export declare function getProfilePicture(connection: Connection, publicKey: PublicKey, config?: ProfilePictureConfig): Promise<ProfilePicture>;
export declare function createSetProfilePrictureTransaction(ownerPublicKey: PublicKey, mintPublicKey: PublicKey, tokenAccountPublicKey: PublicKey): Promise<Transaction>;
export declare function createSetProfilePictureTransaction(ownerPublicKey: PublicKey, mintPublicKey: PublicKey, tokenAccountPublicKey: PublicKey): Promise<Transaction>;
export declare function createRemoveProfilePictureTransaction(ownerPublicKey: PublicKey): Promise<Transaction>;

@@ -39,20 +39,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

import { Metadata } from '@metaplex-foundation/mpl-token-metadata';
import { decodeProfilePictureAccount, generateUrl, getImageUrlFromMetadataUrl, getProfilePicturePDA } from './utils';
import { decodeProfilePictureAccount, generateUrl, getMetadataFromUrl, getProfilePicturePDA } from './utils';
import { Buffer } from 'buffer';
export var PROFILE_PICTURE_PROGRAM = new PublicKey('6UQLqKYWqErHqdsX6WtANQsMmvfKtWNuSSRj6ybg5in3');
export function getProfilePicture(connection, publicKey, config) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
if (config === void 0) { config = { fallback: true }; }
return __awaiter(this, void 0, void 0, function () {
var profilePictureAccountPublicKey, profilePictureAccount, profilePictureData, tokenAccount, nftMetadataAccountPublicKey, nftMetadata, imageUrl, err_1;
return __generator(this, function (_r) {
switch (_r.label) {
var profilePictureAccountPublicKey, profilePictureAccount, profilePictureData, tokenAccount, nftMetadataAccountPublicKey, nftMetadata, metadata, err_1;
return __generator(this, function (_t) {
switch (_t.label) {
case 0:
_r.trys.push([0, 7, , 8]);
_t.trys.push([0, 7, , 8]);
return [4 /*yield*/, getProfilePicturePDA(publicKey)];
case 1:
profilePictureAccountPublicKey = _r.sent();
profilePictureAccountPublicKey = _t.sent();
return [4 /*yield*/, connection.getAccountInfo(profilePictureAccountPublicKey)];
case 2:
profilePictureAccount = _r.sent();
profilePictureAccount = _t.sent();
if (!profilePictureAccount) {

@@ -64,3 +64,3 @@ throw new Error('PDA is empty');

case 3:
tokenAccount = _r.sent();
tokenAccount = _t.sent();
if (!tokenAccount) {

@@ -83,18 +83,25 @@ throw new Error('No token account');

case 4:
nftMetadataAccountPublicKey = _r.sent();
nftMetadataAccountPublicKey = _t.sent();
return [4 /*yield*/, Metadata.load(connection, nftMetadataAccountPublicKey)];
case 5:
nftMetadata = _r.sent();
nftMetadata = _t.sent();
if (!((_q = (_p = nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.data) === null || _p === void 0 ? void 0 : _p.data) === null || _q === void 0 ? void 0 : _q.uri)) {
throw new Error('No metadata URL');
}
return [4 /*yield*/, getImageUrlFromMetadataUrl(nftMetadata.data.data.uri)];
return [4 /*yield*/, getMetadataFromUrl(nftMetadata.data.data.uri)];
case 6:
imageUrl = _r.sent();
metadata = _t.sent();
if (!metadata) {
throw new Error('No metadata');
}
return [2 /*return*/, {
isAvailable: true,
url: generateUrl(imageUrl, publicKey, config)
url: generateUrl((metadata === null || metadata === void 0 ? void 0 : metadata.image) || null, publicKey, config),
name: ((_s = (_r = nftMetadata === null || nftMetadata === void 0 ? void 0 : nftMetadata.data) === null || _r === void 0 ? void 0 : _r.data) === null || _s === void 0 ? void 0 : _s.name) || '',
metadata: metadata,
tokenAccount: profilePictureData.nftTokenAccount,
mintAccount: profilePictureData.nftMint
}];
case 7:
err_1 = _r.sent();
err_1 = _t.sent();
return [2 /*return*/, {

@@ -109,3 +116,3 @@ isAvailable: false,

}
export function createSetProfilePrictureTransaction(ownerPublicKey, mintPublicKey, tokenAccountPublicKey) {
export function createSetProfilePictureTransaction(ownerPublicKey, mintPublicKey, tokenAccountPublicKey) {
return __awaiter(this, void 0, void 0, function () {

@@ -112,0 +119,0 @@ var profilePictureAccountPublicKey, nftMetadataAccountPublicKey, transaction;

@@ -5,2 +5,6 @@ import { PublicKey } from '@solana/web3.js';

url: string;
name?: string;
metadata?: any;
tokenAccount?: PublicKey;
mintAccount?: PublicKey;
}

@@ -7,0 +11,0 @@ export interface ProfilePictureConfig {

@@ -5,3 +5,3 @@ import { AccountInfo, PublicKey } from '@solana/web3.js';

export declare function getProfilePicturePDA(publicKey: PublicKey): Promise<PublicKey>;
export declare function getImageUrlFromMetadataUrl(url: string): Promise<string | null>;
export declare function getMetadataFromUrl(url: string): Promise<any>;
export declare function generateUrl(url: string | null, ownerPublicKey: PublicKey, config: ProfilePictureConfig): string;

@@ -82,5 +82,5 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

}
export function getImageUrlFromMetadataUrl(url) {
export function getMetadataFromUrl(url) {
return __awaiter(this, void 0, void 0, function () {
var response, data, err_1;
var response, err_1;
return __generator(this, function (_a) {

@@ -97,5 +97,3 @@ switch (_a.label) {

return [4 /*yield*/, response.json()];
case 2:
data = _a.sent();
return [2 /*return*/, data.image || null];
case 2: return [2 /*return*/, (_a.sent()) || null];
case 3:

@@ -117,3 +115,3 @@ err_1 = _a.sent();

}
return 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgaWQ9ImJvcmRlcnMtYW5kLWJhY2tncm91bmRzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxKSI+PGc+PHBhdGggZD0ibTAgMGgxMHYxaC05djE0aDF2MWgtMnoiLz48cGF0aCBkPSJtMTAgNGg0djNoLTF2LTJoLTN6Ii8+PHBhdGggZD0ibTE0IDE2di02aC0xdjVoLTV2MXoiLz48L2c+PHBhdGggZD0ibTEyIDE0di0zaC0xdjJoLTJ2MXoiIGZpbGw9IiNiY2JjYzMiLz48cGF0aCBkPSJtMTAgMGgxdjFoMXYxaDF2MWgxdjFoLTF2LTFoLTF2LTFoLTF2MmgtMXoiIGZpbGw9IiM4Nzg3ODciLz48cGF0aCBkPSJtMiAyaDh2M2gydjJoLTR2NWgtMnYxaC0ydjFoLTJ6IiBmaWxsPSIjYmNiY2MzIi8+PC9nPjxnIGlkPSJsZWZ0ZXllIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxKSI+PHBhdGggZD0ibTUgM2gydjNoLTN2LTJoMXYxaDF2LTFoLTF6IiBmaWxsPSIjMDA4OTFlIi8+PHBhdGggZD0ibTUgNGgxdjFoLTF6IiBmaWxsPSIjMDBmMjQ4Ii8+PHBhdGggZD0ibTcgNGgxdjJoLTF2MWgtMnYtMWgyeiIvPjwvZz48ZyBpZD0icmlnaHRleWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEpIj48cGF0aCBkPSJtOCA3aDN2MmgtMXYtMWgtMXYxaDF2MWgtMnoiIGZpbGw9IiMwMDY0ZmIiLz48cGF0aCBkPSJtOSA4aDF2MWgtMXoiIGZpbGw9IiMwMGZiZmUiLz48cGF0aCBkPSJtMTAgOWgxdjFoLTF6IiBmaWxsPSIjMDAzMjkzIi8+PHBhdGggZD0ibTExIDdoMXYyaC0xeiIvPjxwYXRoIGQ9Im04IDEwaDJ2MWgtMnoiLz48L2c+PGcgaWQ9Im1vdXRoIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxKSI+PHBhdGggZD0ibTMgOGgxdjFoMXYxaDF2MWgxdjFoLTF2LTFoLTF2LTFoLTF2LTFoLTF6IiBmaWxsPSIjZmYzOTAwIi8+PHBhdGggZD0ibTMgOWgxdjFoMXYxaDF2MWgtM3oiIGZpbGw9IiNmNzNhZTEiLz48cGF0aCBkPSJtMyAxMmgzdjFoLTN6Ii8+PC9nPjwvc3ZnPg==';
return 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaGVpZ2h0PSIxMDAiIHdpZHRoPSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgaWQ9ImJvcmRlcnMtYW5kLWJhY2tncm91bmRzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1LDQpIj48cGF0aCBkPSJtMCAwaDEwdjFoLTl2MTRoMXYxaC0yeiIvPjxwYXRoIGQ9Im0xMCA0aDR2M2gtMXYtMmgtM3oiLz48cGF0aCBkPSJtMTQgMTZ2LTZoLTF2NWgtNXYxeiIvPjxwYXRoIGQ9Im0xMiAxNHYtM2gtMXYyaC0ydjF6IiBmaWxsPSIjYmNiY2MzIi8+PHBhdGggZD0ibTEwIDBoMXYxaDF2MWgxdjFoMXYxaC0xdi0xaC0xdi0xaC0xdjJoLTF6IiBmaWxsPSIjODc4Nzg3Ii8+PHBhdGggZD0ibTIgMmg4djNoMnYyaC00djVoLTJ2MWgtMnYxaC0yeiIgZmlsbD0iI2JjYmNjMyIvPjwvZz48ZyBpZD0ibGVmdGV5ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw0KSI+PHBhdGggZD0ibTUgM2gydjNoLTN2LTJoMXYxaDF2LTFoLTF6IiBmaWxsPSIjMDA4OTFlIi8+PHBhdGggZD0ibTUgNGgxdjFoLTF6IiBmaWxsPSIjMDBmMjQ4Ii8+PHBhdGggZD0ibTcgNGgxdjJoLTF2MWgtMnYtMWgyeiIvPjwvZz48ZyBpZD0icmlnaHRleWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUsNCkiPjxwYXRoIGQ9Im04IDdoM3YyaC0xdi0xaC0xdjFoMXYxaC0yeiIgZmlsbD0iIzAwNjRmYiIvPjxwYXRoIGQ9Im05IDhoMXYxaC0xeiIgZmlsbD0iIzAwZmJmZSIvPjxwYXRoIGQ9Im0xMCA5aDF2MWgtMXoiIGZpbGw9IiMwMDMyOTMiLz48cGF0aCBkPSJtMTEgN2gxdjJoLTF6Ii8+PHBhdGggZD0ibTggMTBoMnYxaC0yeiIvPjwvZz48ZyBpZD0ibW91dGgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUsNCkiPjxwYXRoIGQ9Im0zIDhoMXYxaDF2MWgxdjFoMXYxaC0xdi0xaC0xdi0xaC0xdi0xaC0xeiIgZmlsbD0iI2ZmMzkwMCIvPjxwYXRoIGQ9Im0zIDloMXYxaDF2MWgxdjFoLTN6IiBmaWxsPSIjZjczYWUxIi8+PHBhdGggZD0ibTMgMTJoM3YxaC0zeiIvPjwvZz48L3N2Zz4=';
}
{
"name": "@solflare-wallet/pfp",
"version": "0.0.1",
"version": "0.0.2",
"description": "",

@@ -22,7 +22,3 @@ "author": "Solflare Developers <developers@solflare.com>",

],
"peerDependencies": {
"@solana/web3.js": "^1.31.0"
},
"devDependencies": {
"@solana/web3.js": "^1.31.0",
"npm-run-all": "^4.1.5",

@@ -34,2 +30,3 @@ "typescript": "^4.5.4"

"@project-serum/borsh": "^0.2.3",
"@solana/web3.js": "^1.31.0",
"btoa": "^1.2.1",

@@ -36,0 +33,0 @@ "buffer": "^6.0.3",

@@ -37,3 +37,3 @@ # @solflare-wallet/pfp

```javascript
function createSetProfilePrictureTransaction (ownerPublicKey: PublicKey, mintPublicKey: PublicKey, tokenAccountPublicKey: PublicKey): Promise<Transaction>
function createSetProfilePictureTransaction (ownerPublicKey: PublicKey, mintPublicKey: PublicKey, tokenAccountPublicKey: PublicKey): Promise<Transaction>
```

@@ -40,0 +40,0 @@

@@ -10,3 +10,3 @@ import {

import { Metadata } from '@metaplex-foundation/mpl-token-metadata';
import { decodeProfilePictureAccount, generateUrl, getImageUrlFromMetadataUrl, getProfilePicturePDA } from './utils';
import { decodeProfilePictureAccount, generateUrl, getMetadataFromUrl, getProfilePicturePDA } from './utils';
import { ProfilePicture, ProfilePictureConfig } from './types';

@@ -58,7 +58,15 @@ import { Buffer } from 'buffer';

const imageUrl = await getImageUrlFromMetadataUrl(nftMetadata.data.data.uri);
const metadata = await getMetadataFromUrl(nftMetadata.data.data.uri);
if (!metadata) {
throw new Error('No metadata');
}
return {
isAvailable: true,
url: generateUrl(imageUrl, publicKey, config)
url: generateUrl(metadata?.image || null, publicKey, config),
name: nftMetadata?.data?.data?.name || '',
metadata,
tokenAccount: profilePictureData.nftTokenAccount,
mintAccount: profilePictureData.nftMint
};

@@ -73,3 +81,3 @@ } catch (err) {

export async function createSetProfilePrictureTransaction (ownerPublicKey: PublicKey, mintPublicKey: PublicKey, tokenAccountPublicKey: PublicKey): Promise<Transaction> {
export async function createSetProfilePictureTransaction (ownerPublicKey: PublicKey, mintPublicKey: PublicKey, tokenAccountPublicKey: PublicKey): Promise<Transaction> {
const profilePictureAccountPublicKey = await getProfilePicturePDA(ownerPublicKey);

@@ -76,0 +84,0 @@

@@ -6,2 +6,6 @@ import { PublicKey } from '@solana/web3.js';

url: string;
name?: string;
metadata?: any;
tokenAccount?: PublicKey;
mintAccount?: PublicKey;
}

@@ -8,0 +12,0 @@

@@ -28,3 +28,3 @@ import { AccountInfo, PublicKey } from '@solana/web3.js';

export async function getImageUrlFromMetadataUrl (url: string): Promise<string | null> {
export async function getMetadataFromUrl (url: string) {
try {

@@ -37,5 +37,3 @@ const response = await fetch(url);

const data = await response.json();
return data.image || null;
return await response.json() || null;
} catch (err) {

@@ -56,3 +54,3 @@ return null;

return 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgaWQ9ImJvcmRlcnMtYW5kLWJhY2tncm91bmRzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxKSI+PGc+PHBhdGggZD0ibTAgMGgxMHYxaC05djE0aDF2MWgtMnoiLz48cGF0aCBkPSJtMTAgNGg0djNoLTF2LTJoLTN6Ii8+PHBhdGggZD0ibTE0IDE2di02aC0xdjVoLTV2MXoiLz48L2c+PHBhdGggZD0ibTEyIDE0di0zaC0xdjJoLTJ2MXoiIGZpbGw9IiNiY2JjYzMiLz48cGF0aCBkPSJtMTAgMGgxdjFoMXYxaDF2MWgxdjFoLTF2LTFoLTF2LTFoLTF2MmgtMXoiIGZpbGw9IiM4Nzg3ODciLz48cGF0aCBkPSJtMiAyaDh2M2gydjJoLTR2NWgtMnYxaC0ydjFoLTJ6IiBmaWxsPSIjYmNiY2MzIi8+PC9nPjxnIGlkPSJsZWZ0ZXllIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxKSI+PHBhdGggZD0ibTUgM2gydjNoLTN2LTJoMXYxaDF2LTFoLTF6IiBmaWxsPSIjMDA4OTFlIi8+PHBhdGggZD0ibTUgNGgxdjFoLTF6IiBmaWxsPSIjMDBmMjQ4Ii8+PHBhdGggZD0ibTcgNGgxdjJoLTF2MWgtMnYtMWgyeiIvPjwvZz48ZyBpZD0icmlnaHRleWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEpIj48cGF0aCBkPSJtOCA3aDN2MmgtMXYtMWgtMXYxaDF2MWgtMnoiIGZpbGw9IiMwMDY0ZmIiLz48cGF0aCBkPSJtOSA4aDF2MWgtMXoiIGZpbGw9IiMwMGZiZmUiLz48cGF0aCBkPSJtMTAgOWgxdjFoLTF6IiBmaWxsPSIjMDAzMjkzIi8+PHBhdGggZD0ibTExIDdoMXYyaC0xeiIvPjxwYXRoIGQ9Im04IDEwaDJ2MWgtMnoiLz48L2c+PGcgaWQ9Im1vdXRoIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxKSI+PHBhdGggZD0ibTMgOGgxdjFoMXYxaDF2MWgxdjFoLTF2LTFoLTF2LTFoLTF2LTFoLTF6IiBmaWxsPSIjZmYzOTAwIi8+PHBhdGggZD0ibTMgOWgxdjFoMXYxaDF2MWgtM3oiIGZpbGw9IiNmNzNhZTEiLz48cGF0aCBkPSJtMyAxMmgzdjFoLTN6Ii8+PC9nPjwvc3ZnPg==';
return 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaGVpZ2h0PSIxMDAiIHdpZHRoPSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgaWQ9ImJvcmRlcnMtYW5kLWJhY2tncm91bmRzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1LDQpIj48cGF0aCBkPSJtMCAwaDEwdjFoLTl2MTRoMXYxaC0yeiIvPjxwYXRoIGQ9Im0xMCA0aDR2M2gtMXYtMmgtM3oiLz48cGF0aCBkPSJtMTQgMTZ2LTZoLTF2NWgtNXYxeiIvPjxwYXRoIGQ9Im0xMiAxNHYtM2gtMXYyaC0ydjF6IiBmaWxsPSIjYmNiY2MzIi8+PHBhdGggZD0ibTEwIDBoMXYxaDF2MWgxdjFoMXYxaC0xdi0xaC0xdi0xaC0xdjJoLTF6IiBmaWxsPSIjODc4Nzg3Ii8+PHBhdGggZD0ibTIgMmg4djNoMnYyaC00djVoLTJ2MWgtMnYxaC0yeiIgZmlsbD0iI2JjYmNjMyIvPjwvZz48ZyBpZD0ibGVmdGV5ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNSw0KSI+PHBhdGggZD0ibTUgM2gydjNoLTN2LTJoMXYxaDF2LTFoLTF6IiBmaWxsPSIjMDA4OTFlIi8+PHBhdGggZD0ibTUgNGgxdjFoLTF6IiBmaWxsPSIjMDBmMjQ4Ii8+PHBhdGggZD0ibTcgNGgxdjJoLTF2MWgtMnYtMWgyeiIvPjwvZz48ZyBpZD0icmlnaHRleWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUsNCkiPjxwYXRoIGQ9Im04IDdoM3YyaC0xdi0xaC0xdjFoMXYxaC0yeiIgZmlsbD0iIzAwNjRmYiIvPjxwYXRoIGQ9Im05IDhoMXYxaC0xeiIgZmlsbD0iIzAwZmJmZSIvPjxwYXRoIGQ9Im0xMCA5aDF2MWgtMXoiIGZpbGw9IiMwMDMyOTMiLz48cGF0aCBkPSJtMTEgN2gxdjJoLTF6Ii8+PHBhdGggZD0ibTggMTBoMnYxaC0yeiIvPjwvZz48ZyBpZD0ibW91dGgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUsNCkiPjxwYXRoIGQ9Im0zIDhoMXYxaDF2MWgxdjFoMXYxaC0xdi0xaC0xdi0xaC0xdi0xaC0xeiIgZmlsbD0iI2ZmMzkwMCIvPjxwYXRoIGQ9Im0zIDloMXYxaDF2MWgxdjFoLTN6IiBmaWxsPSIjZjczYWUxIi8+PHBhdGggZD0ibTMgMTJoM3YxaC0zeiIvPjwvZz48L3N2Zz4=';
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc