Skip to content

Commit e273e83

Browse files
author
ci-bot
committed
add circles plugin
1 parent 747e579 commit e273e83

File tree

5 files changed

+158
-4
lines changed

5 files changed

+158
-4
lines changed

apps/remix-ide/src/app.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ import Filepanel from './app/panels/file-panel'
109109
import Editor from './app/editor/editor'
110110
import Terminal from './app/panels/terminal'
111111
import TabProxy from './app/panels/tab-proxy.js'
112-
import { Plugin } from '@remixproject/engine'
113112
import BottomBarPanel from './app/components/bottom-bar-panel'
113+
import { Circles } from './app/plugins/circles'
114114

115115
const _paq = (window._paq = window._paq || [])
116116

@@ -403,6 +403,8 @@ class AppComponent {
403403

404404
const walletConnect = new WalletConnect()
405405

406+
const circles = new Circles()
407+
406408
this.engine.register([
407409
permissionHandler,
408410
this.layout,
@@ -459,7 +461,8 @@ class AppComponent {
459461
scriptRunnerUI,
460462
remixAI,
461463
remixAiAssistant,
462-
walletConnect
464+
walletConnect,
465+
circles
463466
])
464467

465468
//---- fs plugin
@@ -736,7 +739,7 @@ class AppComponent {
736739
})
737740

738741
// activate solidity plugin
739-
this.appManager.activatePlugin(['solidity', 'udapp', 'deploy-libraries', 'link-libraries', 'openzeppelin-proxy', 'scriptRunnerBridge'])
742+
this.appManager.activatePlugin(['solidity', 'udapp', 'deploy-libraries', 'link-libraries', 'openzeppelin-proxy', 'scriptRunnerBridge', 'circles'])
740743

741744
if (isElectron()){
742745
this.appManager.activatePlugin(['desktopHost'])
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
'use strict'
2+
import { Plugin } from '@remixproject/engine'
3+
import { Sdk } from '@circles-sdk/sdk'
4+
import { BrowserProviderContractRunner } from "@circles-sdk/adapter-ethers"
5+
import { BrowserProvider } from 'ethers'
6+
import { GitHubUser } from '@remix-api'
7+
8+
const _paq = window._paq = window._paq || []
9+
10+
const profile = {
11+
name: 'circles',
12+
description: 'circles UBI',
13+
methods: ['initSdk', 'deleteProfile'],
14+
events: [],
15+
version: '1.0.0'
16+
}
17+
18+
const CIRLCES_KEY = 'CIRLCES_KEY'
19+
20+
export class Circles extends Plugin {
21+
constructor() {
22+
super(profile)
23+
}
24+
25+
onActivation(): void {}
26+
27+
public async initSdk (user: GitHubUser) {
28+
try {
29+
if (!user) {
30+
this.call('terminal', 'log', { type: 'error', value: 'please log in with github before initiating a circles profile'})
31+
return
32+
}
33+
const adapter = new BrowserProviderContractRunner()
34+
const web3 = await this.call('blockchain', 'web3')
35+
console.log('web3', web3);
36+
// (adapter as any).provider = new BrowserProvider(web3.currentProvider)
37+
await adapter.init();
38+
const sdk = new Sdk(adapter)
39+
40+
if (!localStorage.getItem(CIRLCES_KEY)) {
41+
this.call('terminal', 'log', { type: 'log', value: `creating Circles profile...${user.login}`})
42+
const profileData = { name: user.login, description: '' }
43+
const receipt = await sdk.createOrUpdateProfile(profileData)
44+
localStorage.setItem(CIRLCES_KEY, JSON.stringify(receipt))
45+
}
46+
this.call('terminal', 'log', { type: 'log', value: 'Circles profile:'})
47+
this.call('terminal', 'log', { type: 'log', value: localStorage.getItem(CIRLCES_KEY)})
48+
} catch (e) {
49+
console.error(e)
50+
this.call('terminal', 'log', { type: 'error', value: e.message})
51+
}
52+
}
53+
54+
public deleteProfile () {
55+
localStorage.removeItem(CIRLCES_KEY)
56+
}
57+
}

apps/remix-ide/src/remixEngine.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export class RemixEngine extends Engine {
3232
if (name === 'contentImport') return { queueTimeout: 60000 * 3 }
3333
if (name === 'circom') return { queueTimeout: 60000 * 4 }
3434
if (name === 'noir-compiler') return { queueTimeout: 60000 * 4 }
35+
if (name === 'circles') return { queueTimeout: 60000 * 4 }
3536
return { queueTimeout: 10000 }
3637
}
3738

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
"@apollo/client": "^3.9.5",
9292
"@babel/plugin-proposal-class-properties": "^7.16.0",
9393
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
94+
"@circles-sdk/sdk": "^0.29.1",
9495
"@erebos/bzz-node": "^0.13.0",
9596
"@ethereumjs/block": "^10.0.0",
9697
"@ethereumjs/blockchain": "^10.0.0",

yarn.lock

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2270,6 +2270,80 @@
22702270
"@chainsafe/persistent-merkle-tree" "^0.4.2"
22712271
case "^1.6.3"
22722272

2273+
"@circles-sdk/[email protected]":
2274+
version "0.29.1"
2275+
resolved "https://registry.yarnpkg.com/@circles-sdk/abi-v1/-/abi-v1-0.29.1.tgz#3d3a32e6fe7d47eec5793a9a0f331eb3c9022e7b"
2276+
integrity sha512-A/sbCbWR44Do3JEIWftv61IGzzHpwiwqIiNJ0uMOIZVLoLNEjarDf0OV+nrBMcA1EIJPqJrnmkzEDUyFICONIg==
2277+
dependencies:
2278+
ethers "^6.13.2"
2279+
2280+
"@circles-sdk/[email protected]":
2281+
version "0.29.1"
2282+
resolved "https://registry.yarnpkg.com/@circles-sdk/abi-v2/-/abi-v2-0.29.1.tgz#96efeb53dc0b1cebbeef8d3f8d81c5598d6efc4d"
2283+
integrity sha512-1HcXSEb09yi6YpvKxaIHrqJT0XxZwVZQuFtLK7J2f+fMfGJHB3RfiF3ZtKWw5nu8bcRmgW6gVSEHjwb0oZ7qSw==
2284+
dependencies:
2285+
ethers "^6.13.2"
2286+
2287+
"@circles-sdk/[email protected]":
2288+
version "0.29.1"
2289+
resolved "https://registry.yarnpkg.com/@circles-sdk/adapter-ethers/-/adapter-ethers-0.29.1.tgz#53508fcfcf5ac9d908e5148ee61003b7d426f1e4"
2290+
integrity sha512-+OUcPmO32VAEbaqKofltPynyMiPlJBvoi4f/bx690RYWeZU8BFvm8Mh5M09f2McyUVnZQSt5KSqCsv5dSbnCEw==
2291+
dependencies:
2292+
"@circles-sdk/adapter" "0.29.1"
2293+
"@circles-sdk/utils" "0.29.1"
2294+
ethers "^6.13.2"
2295+
2296+
"@circles-sdk/[email protected]":
2297+
version "0.29.1"
2298+
resolved "https://registry.yarnpkg.com/@circles-sdk/adapter/-/adapter-0.29.1.tgz#3773a433b85070a29d6e47fa425ede3d53e48081"
2299+
integrity sha512-qQhZc7MuQ2p/CIYMjOeQAqc9PY9VVfncnQlFEpJe4K/8jyP9hma+TUkbhJnbr6GCjJRuu34DnZemU5R8p40VZg==
2300+
2301+
"@circles-sdk/[email protected]":
2302+
version "0.29.1"
2303+
resolved "https://registry.yarnpkg.com/@circles-sdk/data/-/data-0.29.1.tgz#269c54d53c0b172555439d622fe31bddaa607891"
2304+
integrity sha512-8R06yPjqM8d4VVOlxLVIkw7CFpSNxIIU3pXKsXsfpfCFldgVabZC+wNmkakPzvyK/+sJmuqCn40CHYeugxT8hA==
2305+
dependencies:
2306+
"@circles-sdk/utils" "0.29.1"
2307+
2308+
"@circles-sdk/[email protected]":
2309+
version "0.29.1"
2310+
resolved "https://registry.yarnpkg.com/@circles-sdk/pathfinder/-/pathfinder-0.29.1.tgz#bc5ad76fceb4f812832427f10e1d26d176cfc168"
2311+
integrity sha512-MpSARRDawzRL8QHRL15TK9Fi+eFOClbGYEay8ekICq2SbbC5/tD7pksT/Tw8N+l8uaxx79FKwpFYls2fv/Rr8g==
2312+
dependencies:
2313+
"@circles-sdk/abi-v2" "0.29.1"
2314+
"@circles-sdk/data" "0.29.1"
2315+
"@circles-sdk/utils" "0.29.1"
2316+
ethers "^6.13.2"
2317+
2318+
"@circles-sdk/[email protected]":
2319+
version "0.29.1"
2320+
resolved "https://registry.yarnpkg.com/@circles-sdk/profiles/-/profiles-0.29.1.tgz#f276316bb39ac2fec99dd86b85f90d195dee7911"
2321+
integrity sha512-Vkra0/P0goZ+sax99iFFMhOIAaGk8emheNxDPN8y68md+j1B9EDZeAJoVbjd5mYP01TEoup7gZimlXPuw9qxtw==
2322+
dependencies:
2323+
"@circles-sdk/utils" "0.29.1"
2324+
2325+
"@circles-sdk/sdk@^0.29.1":
2326+
version "0.29.1"
2327+
resolved "https://registry.yarnpkg.com/@circles-sdk/sdk/-/sdk-0.29.1.tgz#2e96e38c10304c8fb3df75fc612c5c75f9c7cad5"
2328+
integrity sha512-2LbaDrg3HEwiaUsMr2vWm2TDCcnF/29hG2u9Q4w0DDs694XQ/PiMMwArGu/O4CapWPKLcQ94+Nc6YUGptXMTbA==
2329+
dependencies:
2330+
"@circles-sdk/abi-v1" "0.29.1"
2331+
"@circles-sdk/abi-v2" "0.29.1"
2332+
"@circles-sdk/adapter-ethers" "0.29.1"
2333+
"@circles-sdk/data" "0.29.1"
2334+
"@circles-sdk/pathfinder" "0.29.1"
2335+
"@circles-sdk/profiles" "0.29.1"
2336+
ethers "^6.13.2"
2337+
multihashes "^4.0.3"
2338+
2339+
"@circles-sdk/[email protected]":
2340+
version "0.29.1"
2341+
resolved "https://registry.yarnpkg.com/@circles-sdk/utils/-/utils-0.29.1.tgz#029c508c2a1736fa0ddd2db6a4f0884727652e2b"
2342+
integrity sha512-3yvYStD7c2KeXc0zNujClRWunE9W56doY5rHXp7F6zRyEZeJ8CjOiHFJHB+ZSY4eI7Btpwn0saYasZxhBJTL/g==
2343+
dependencies:
2344+
bignumber.js "^9.1.2"
2345+
ethers "^6.13.2"
2346+
22732347
"@coinbase/[email protected]":
22742348
version "4.3.0"
22752349
resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.3.0.tgz#03b8fce92ac2b3b7cf132f64d6008ac081569b4e"
@@ -10440,6 +10514,11 @@ bignumber.js@^9.0.0:
1044010514
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5"
1044110515
integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==
1044210516

10517+
bignumber.js@^9.1.2:
10518+
version "9.3.1"
10519+
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.3.1.tgz#759c5aaddf2ffdc4f154f7b493e1c8770f88c4d7"
10520+
integrity sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==
10521+
1044310522
binary-extensions@^1.0.0:
1044410523
version "1.13.1"
1044510524
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
@@ -15171,6 +15250,19 @@ ethers@^5.7.1, ethers@^5.7.2:
1517115250
"@ethersproject/web" "5.7.1"
1517215251
"@ethersproject/wordlists" "5.7.0"
1517315252

15253+
ethers@^6.13.2:
15254+
version "6.15.0"
15255+
resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.15.0.tgz#2980f2a3baf0509749b7e21f8692fa8a8349c0e3"
15256+
integrity sha512-Kf/3ZW54L4UT0pZtsY/rf+EkBU7Qi5nnhonjUb8yTXcxH3cdcWrV2cRyk0Xk/4jK6OoHhxxZHriyhje20If2hQ==
15257+
dependencies:
15258+
"@adraffy/ens-normalize" "1.10.1"
15259+
"@noble/curves" "1.2.0"
15260+
"@noble/hashes" "1.3.2"
15261+
"@types/node" "22.7.5"
15262+
aes-js "4.0.0-beta.5"
15263+
tslib "2.7.0"
15264+
ws "8.17.1"
15265+
1517415266
ethers@^6.14.0:
1517515267
version "6.14.0"
1517615268
resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.14.0.tgz#b80eca3b60fc97da53f73b77629ce7392568eae0"
@@ -22847,7 +22939,7 @@ multihashes@^3.0.1:
2284722939
uint8arrays "^2.0.5"
2284822940
varint "^6.0.0"
2284922941

22850-
multihashes@^4.0.1:
22942+
multihashes@^4.0.1, multihashes@^4.0.3:
2285122943
version "4.0.3"
2285222944
resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-4.0.3.tgz#426610539cd2551edbf533adeac4c06b3b90fb05"
2285322945
integrity sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==

0 commit comments

Comments
 (0)