mascara-1

来源:https://github.com/MetaMask/mascara

(beta) Add MetaMask to your dapp even if the user doesn't have the extension installed

有两种调用mascara的方法:

1)页面端

<script src="https://wallet.metamask.io/metamascara.js"></script>

在网页上调用,将得到:

因此在网页上可以通过window.metamask.createDefaultProvider()的方法来进行使用

 

2)后台调用(现在我使用的是这种方法)看简单使用metamascara

npm i --save metamascara

 

const metamask = require('metamascara')
const EthJs = require('ethjs')

// mascara will use the environmental provider if the user brings one
// in the form of metamask extension, mist or parity
// other wise it will make one for you :}

const ethereumProvider = metamask.createDefaultProvider()

const eth = new EthJs(ethereumProvider)

或者:

const metamask = require('metamascara');
const
Web3 = require('web3'); const ethereumProvider = metamask.createDefaultProvider(); const web3 = new Web3(ethereumProvider);

 

Developing:

For development with metamask-extension/mascara to point the iframe at localhost just do:

const metamask = require('metamascara')
const ethereumProvider = metamask.createDefaultProvider({
    host: 'http://localhost:9001'
  }) // or what ever port you use

如果上面没有设置host,那就说明要使用的是网页版的metamask(https://wallet.metamask.io)。如果想要设置自己的网页版,那么就要将相应的服务端写好,并将接口设成9001,然后就可以通过设置host来进行连接了(这部分之后再讲,在这里将直接使用网页版的metamask)

How does it work and how to use it:

Mascara is an iframe that acts as a proxy between your dapp and metamask core. The metamask core is the global context housed in a service worker, it does the key management for every dapp the user visits.

然后后面分析一下代码

转载于:https://www.cnblogs.com/wanghui-garcia/p/9877830.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
好的,我可以为您介绍一个简单的化妆Python小游戏。这个游戏可以让玩家选择不同的化妆品,来为一个虚拟的模特化妆。 首先,需要安装Pygame模块。可以使用以下命令在终端中安装: ``` pip install pygame ``` 接下来,创建一个名为“makeup_game.py”的Python文件,并导入Pygame模块: ```python import pygame ``` 然后,定义一些常量,如屏幕大小和颜色: ```python SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 WHITE = (255, 255, 255) ``` 接下来,创建一个名为“Game”的类,并定义初始化函数: ```python class Game: def __init__(self): pygame.init() self.screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption("Makeup Game") self.clock = pygame.time.Clock() self.running = True def run(self): while self.running: self.clock.tick(60) self.handle_events() self.update() self.draw() pygame.quit() def handle_events(self): for event in pygame.event.get(): if event.type == pygame.QUIT: self.running = False def update(self): pass def draw(self): self.screen.fill(WHITE) pygame.display.flip() ``` 现在,我们可以运行游戏并看到一个白色的窗口。接下来,我们需要添加一些化妆品。 首先,创建一个名为“Item”的类,并定义初始化函数和绘制函数: ```python class Item: def __init__(self, image_path, x, y): self.image = pygame.image.load(image_path) self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y def draw(self, screen): screen.blit(self.image, self.rect) ``` 然后,创建一些化妆品对象: ```python lipstick = Item("lipstick.png", 100, 100) eyeshadow = Item("eyeshadow.png", 200, 100) mascara = Item("mascara.png", 300, 100) ``` 接下来,在“update”函数中检查鼠标是否点击了某个化妆品,并存储当前选择的化妆品: ```python def update(self): mouse_pos = pygame.mouse.get_pos() if pygame.mouse.get_pressed()[0]: if lipstick.rect.collidepoint(mouse_pos): self.current_item = lipstick elif eyeshadow.rect.collidepoint(mouse_pos): self.current_item = eyeshadow elif mascara.rect.collidepoint(mouse_pos): self.current_item = mascara ``` 最后,在“draw”函数中绘制当前选择的化妆品: ```python def draw(self): self.screen.fill(WHITE) lipstick.draw(self.screen) eyeshadow.draw(self.screen) mascara.draw(self.screen) if self.current_item: self.current_item.draw(self.screen) pygame.display.flip() ``` 这样,我们就完成了一个简单的化妆Python小游戏。玩家可以通过点击不同的化妆品来选择不同的化妆品,然后将其应用于虚拟模特身上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值