From 0fca4cb62c5b761bb2d242e6c2bdc5dab4c35c71 Mon Sep 17 00:00:00 2001 From: kdmukai Date: Wed, 23 Jun 2021 19:08:41 -0500 Subject: [PATCH 01/12] Update README.md Fixing incorrect documentation link. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 948bb7f8..f6d14e2c 100644 --- a/README.md +++ b/README.md @@ -171,4 +171,4 @@ sudo reboot It will take about a minute after the Pi is powered on for the GUI to launch -- be patient! -_Reminder: If you used option #2, [return the guide](babel/README.md) to remove the internet access over USB configuration._ +_Reminder: If you used option #2, [return the guide](docs/usb_relay.md) to remove the internet access over USB configuration._ From 2fbb82bb83e1671907afac79e1a9ec7f14ec4dec Mon Sep 17 00:00:00 2001 From: kdmukai Date: Wed, 23 Jun 2021 21:46:41 -0500 Subject: [PATCH 02/12] Moved python files into a subdir; adds config file --- README.md | 2 +- seedsigner/bip39/es.py | 2048 +++++++++++++++++ controller.py => seedsigner/controller.py | 34 +- {helpers => seedsigner/helpers}/ST7789.py | 0 {helpers => seedsigner/helpers}/bcur.py | 0 {helpers => seedsigner/helpers}/buttons.py | 0 .../helpers}/camera_process.py | 0 {helpers => seedsigner/helpers}/path.py | 0 {helpers => seedsigner/helpers}/qr.py | 0 {helpers => seedsigner/helpers}/ur2/LICENSE | 0 .../helpers}/ur2/__init__.py | 0 .../helpers}/ur2/bytewords.py | 0 .../helpers}/ur2/cbor_lite.py | 0 .../helpers}/ur2/constants.py | 0 {helpers => seedsigner/helpers}/ur2/crc32.py | 0 .../helpers}/ur2/fountain_decoder.py | 0 .../helpers}/ur2/fountain_encoder.py | 0 .../helpers}/ur2/fountain_utils.py | 0 .../helpers}/ur2/random_sampler.py | 0 {helpers => seedsigner/helpers}/ur2/ur.py | 0 .../helpers}/ur2/ur_decoder.py | 0 .../helpers}/ur2/ur_encoder.py | 0 {helpers => seedsigner/helpers}/ur2/utils.py | 0 .../helpers}/ur2/xoshiro256.py | 0 main.py => seedsigner/main.py | 12 +- .../models}/blue_vault_wallet.py | 0 .../models}/generic_ur2_wallet.py | 0 {models => seedsigner/models}/seed_storage.py | 0 .../models}/sparrow_multisig_wallet.py | 0 .../specter_desktop_multisig_wallet.py | 0 .../specter_desktop_single_sig_wallet.py | 0 {models => seedsigner/models}/wallet.py | 0 seedsigner/settings.ini | 7 + {views => seedsigner/views}/io_test_view.py | 0 {views => seedsigner/views}/menu_view.py | 0 .../views}/seed_tools_view.py | 0 .../views}/settings_tools_view.py | 0 .../views}/signing_tools_view.py | 0 {views => seedsigner/views}/view.py | 0 39 files changed, 2090 insertions(+), 13 deletions(-) create mode 100644 seedsigner/bip39/es.py rename controller.py => seedsigner/controller.py (95%) rename {helpers => seedsigner/helpers}/ST7789.py (100%) rename {helpers => seedsigner/helpers}/bcur.py (100%) rename {helpers => seedsigner/helpers}/buttons.py (100%) rename {helpers => seedsigner/helpers}/camera_process.py (100%) rename {helpers => seedsigner/helpers}/path.py (100%) rename {helpers => seedsigner/helpers}/qr.py (100%) rename {helpers => seedsigner/helpers}/ur2/LICENSE (100%) rename {helpers => seedsigner/helpers}/ur2/__init__.py (100%) rename {helpers => seedsigner/helpers}/ur2/bytewords.py (100%) rename {helpers => seedsigner/helpers}/ur2/cbor_lite.py (100%) rename {helpers => seedsigner/helpers}/ur2/constants.py (100%) rename {helpers => seedsigner/helpers}/ur2/crc32.py (100%) rename {helpers => seedsigner/helpers}/ur2/fountain_decoder.py (100%) rename {helpers => seedsigner/helpers}/ur2/fountain_encoder.py (100%) rename {helpers => seedsigner/helpers}/ur2/fountain_utils.py (100%) rename {helpers => seedsigner/helpers}/ur2/random_sampler.py (100%) rename {helpers => seedsigner/helpers}/ur2/ur.py (100%) rename {helpers => seedsigner/helpers}/ur2/ur_decoder.py (100%) rename {helpers => seedsigner/helpers}/ur2/ur_encoder.py (100%) rename {helpers => seedsigner/helpers}/ur2/utils.py (100%) rename {helpers => seedsigner/helpers}/ur2/xoshiro256.py (100%) rename main.py => seedsigner/main.py (51%) rename {models => seedsigner/models}/blue_vault_wallet.py (100%) rename {models => seedsigner/models}/generic_ur2_wallet.py (100%) rename {models => seedsigner/models}/seed_storage.py (100%) rename {models => seedsigner/models}/sparrow_multisig_wallet.py (100%) rename {models => seedsigner/models}/specter_desktop_multisig_wallet.py (100%) rename {models => seedsigner/models}/specter_desktop_single_sig_wallet.py (100%) rename {models => seedsigner/models}/wallet.py (100%) create mode 100644 seedsigner/settings.ini rename {views => seedsigner/views}/io_test_view.py (100%) rename {views => seedsigner/views}/menu_view.py (100%) rename {views => seedsigner/views}/seed_tools_view.py (100%) rename {views => seedsigner/views}/settings_tools_view.py (100%) rename {views => seedsigner/views}/signing_tools_view.py (100%) rename {views => seedsigner/views}/view.py (100%) diff --git a/README.md b/README.md index 948bb7f8..60e8c0f2 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ Description=Seedsigner [Service] User=pi -WorkingDirectory=/home/pi/seedsigner +WorkingDirectory=/home/pi/seedsigner/seedsigner ExecStart=/usr/bin/python3 main.py Restart=always diff --git a/seedsigner/bip39/es.py b/seedsigner/bip39/es.py new file mode 100644 index 00000000..12557a26 --- /dev/null +++ b/seedsigner/bip39/es.py @@ -0,0 +1,2048 @@ +ábaco +abdomen +abeja +abierto +abogado +abono +aborto +abrazo +abrir +abuelo +abuso +acabar +academia +acceso +acción +aceite +acelga +acento +aceptar +ácido +aclarar +acné +acoger +acoso +activo +acto +actriz +actuar +acudir +acuerdo +acusar +adicto +admitir +adoptar +adorno +aduana +adulto +aéreo +afectar +afición +afinar +afirmar +ágil +agitar +agonía +agosto +agotar +agregar +agrio +agua +agudo +águila +aguja +ahogo +ahorro +aire +aislar +ajedrez +ajeno +ajuste +alacrán +alambre +alarma +alba +álbum +alcalde +aldea +alegre +alejar +alerta +aleta +alfiler +alga +algodón +aliado +aliento +alivio +alma +almeja +almíbar +altar +alteza +altivo +alto +altura +alumno +alzar +amable +amante +amapola +amargo +amasar +ámbar +ámbito +ameno +amigo +amistad +amor +amparo +amplio +ancho +anciano +ancla +andar +andén +anemia +ángulo +anillo +ánimo +anís +anotar +antena +antiguo +antojo +anual +anular +anuncio +añadir +añejo +año +apagar +aparato +apetito +apio +aplicar +apodo +aporte +apoyo +aprender +aprobar +apuesta +apuro +arado +araña +arar +árbitro +árbol +arbusto +archivo +arco +arder +ardilla +arduo +área +árido +aries +armonía +arnés +aroma +arpa +arpón +arreglo +arroz +arruga +arte +artista +asa +asado +asalto +ascenso +asegurar +aseo +asesor +asiento +asilo +asistir +asno +asombro +áspero +astilla +astro +astuto +asumir +asunto +atajo +ataque +atar +atento +ateo +ático +atleta +átomo +atraer +atroz +atún +audaz +audio +auge +aula +aumento +ausente +autor +aval +avance +avaro +ave +avellana +avena +avestruz +avión +aviso +ayer +ayuda +ayuno +azafrán +azar +azote +azúcar +azufre +azul +baba +babor +bache +bahía +baile +bajar +balanza +balcón +balde +bambú +banco +banda +baño +barba +barco +barniz +barro +báscula +bastón +basura +batalla +batería +batir +batuta +baúl +bazar +bebé +bebida +bello +besar +beso +bestia +bicho +bien +bingo +blanco +bloque +blusa +boa +bobina +bobo +boca +bocina +boda +bodega +boina +bola +bolero +bolsa +bomba +bondad +bonito +bono +bonsái +borde +borrar +bosque +bote +botín +bóveda +bozal +bravo +brazo +brecha +breve +brillo +brinco +brisa +broca +broma +bronce +brote +bruja +brusco +bruto +buceo +bucle +bueno +buey +bufanda +bufón +búho +buitre +bulto +burbuja +burla +burro +buscar +butaca +buzón +caballo +cabeza +cabina +cabra +cacao +cadáver +cadena +caer +café +caída +caimán +caja +cajón +cal +calamar +calcio +caldo +calidad +calle +calma +calor +calvo +cama +cambio +camello +camino +campo +cáncer +candil +canela +canguro +canica +canto +caña +cañón +caoba +caos +capaz +capitán +capote +captar +capucha +cara +carbón +cárcel +careta +carga +cariño +carne +carpeta +carro +carta +casa +casco +casero +caspa +castor +catorce +catre +caudal +causa +cazo +cebolla +ceder +cedro +celda +célebre +celoso +célula +cemento +ceniza +centro +cerca +cerdo +cereza +cero +cerrar +certeza +césped +cetro +chacal +chaleco +champú +chancla +chapa +charla +chico +chiste +chivo +choque +choza +chuleta +chupar +ciclón +ciego +cielo +cien +cierto +cifra +cigarro +cima +cinco +cine +cinta +ciprés +circo +ciruela +cisne +cita +ciudad +clamor +clan +claro +clase +clave +cliente +clima +clínica +cobre +cocción +cochino +cocina +coco +código +codo +cofre +coger +cohete +cojín +cojo +cola +colcha +colegio +colgar +colina +collar +colmo +columna +combate +comer +comida +cómodo +compra +conde +conejo +conga +conocer +consejo +contar +copa +copia +corazón +corbata +corcho +cordón +corona +correr +coser +cosmos +costa +cráneo +cráter +crear +crecer +creído +crema +cría +crimen +cripta +crisis +cromo +crónica +croqueta +crudo +cruz +cuadro +cuarto +cuatro +cubo +cubrir +cuchara +cuello +cuento +cuerda +cuesta +cueva +cuidar +culebra +culpa +culto +cumbre +cumplir +cuna +cuneta +cuota +cupón +cúpula +curar +curioso +curso +curva +cutis +dama +danza +dar +dardo +dátil +deber +débil +década +decir +dedo +defensa +definir +dejar +delfín +delgado +delito +demora +denso +dental +deporte +derecho +derrota +desayuno +deseo +desfile +desnudo +destino +desvío +detalle +detener +deuda +día +diablo +diadema +diamante +diana +diario +dibujo +dictar +diente +dieta +diez +difícil +digno +dilema +diluir +dinero +directo +dirigir +disco +diseño +disfraz +diva +divino +doble +doce +dolor +domingo +don +donar +dorado +dormir +dorso +dos +dosis +dragón +droga +ducha +duda +duelo +dueño +dulce +dúo +duque +durar +dureza +duro +ébano +ebrio +echar +eco +ecuador +edad +edición +edificio +editor +educar +efecto +eficaz +eje +ejemplo +elefante +elegir +elemento +elevar +elipse +élite +elixir +elogio +eludir +embudo +emitir +emoción +empate +empeño +empleo +empresa +enano +encargo +enchufe +encía +enemigo +enero +enfado +enfermo +engaño +enigma +enlace +enorme +enredo +ensayo +enseñar +entero +entrar +envase +envío +época +equipo +erizo +escala +escena +escolar +escribir +escudo +esencia +esfera +esfuerzo +espada +espejo +espía +esposa +espuma +esquí +estar +este +estilo +estufa +etapa +eterno +ética +etnia +evadir +evaluar +evento +evitar +exacto +examen +exceso +excusa +exento +exigir +exilio +existir +éxito +experto +explicar +exponer +extremo +fábrica +fábula +fachada +fácil +factor +faena +faja +falda +fallo +falso +faltar +fama +familia +famoso +faraón +farmacia +farol +farsa +fase +fatiga +fauna +favor +fax +febrero +fecha +feliz +feo +feria +feroz +fértil +fervor +festín +fiable +fianza +fiar +fibra +ficción +ficha +fideo +fiebre +fiel +fiera +fiesta +figura +fijar +fijo +fila +filete +filial +filtro +fin +finca +fingir +finito +firma +flaco +flauta +flecha +flor +flota +fluir +flujo +flúor +fobia +foca +fogata +fogón +folio +folleto +fondo +forma +forro +fortuna +forzar +fosa +foto +fracaso +frágil +franja +frase +fraude +freír +freno +fresa +frío +frito +fruta +fuego +fuente +fuerza +fuga +fumar +función +funda +furgón +furia +fusil +fútbol +futuro +gacela +gafas +gaita +gajo +gala +galería +gallo +gamba +ganar +gancho +ganga +ganso +garaje +garza +gasolina +gastar +gato +gavilán +gemelo +gemir +gen +género +genio +gente +geranio +gerente +germen +gesto +gigante +gimnasio +girar +giro +glaciar +globo +gloria +gol +golfo +goloso +golpe +goma +gordo +gorila +gorra +gota +goteo +gozar +grada +gráfico +grano +grasa +gratis +grave +grieta +grillo +gripe +gris +grito +grosor +grúa +grueso +grumo +grupo +guante +guapo +guardia +guerra +guía +guiño +guion +guiso +guitarra +gusano +gustar +haber +hábil +hablar +hacer +hacha +hada +hallar +hamaca +harina +haz +hazaña +hebilla +hebra +hecho +helado +helio +hembra +herir +hermano +héroe +hervir +hielo +hierro +hígado +higiene +hijo +himno +historia +hocico +hogar +hoguera +hoja +hombre +hongo +honor +honra +hora +hormiga +horno +hostil +hoyo +hueco +huelga +huerta +hueso +huevo +huida +huir +humano +húmedo +humilde +humo +hundir +huracán +hurto +icono +ideal +idioma +ídolo +iglesia +iglú +igual +ilegal +ilusión +imagen +imán +imitar +impar +imperio +imponer +impulso +incapaz +índice +inerte +infiel +informe +ingenio +inicio +inmenso +inmune +innato +insecto +instante +interés +íntimo +intuir +inútil +invierno +ira +iris +ironía +isla +islote +jabalí +jabón +jamón +jarabe +jardín +jarra +jaula +jazmín +jefe +jeringa +jinete +jornada +joroba +joven +joya +juerga +jueves +juez +jugador +jugo +juguete +juicio +junco +jungla +junio +juntar +júpiter +jurar +justo +juvenil +juzgar +kilo +koala +labio +lacio +lacra +lado +ladrón +lagarto +lágrima +laguna +laico +lamer +lámina +lámpara +lana +lancha +langosta +lanza +lápiz +largo +larva +lástima +lata +látex +latir +laurel +lavar +lazo +leal +lección +leche +lector +leer +legión +legumbre +lejano +lengua +lento +leña +león +leopardo +lesión +letal +letra +leve +leyenda +libertad +libro +licor +líder +lidiar +lienzo +liga +ligero +lima +límite +limón +limpio +lince +lindo +línea +lingote +lino +linterna +líquido +liso +lista +litera +litio +litro +llaga +llama +llanto +llave +llegar +llenar +llevar +llorar +llover +lluvia +lobo +loción +loco +locura +lógica +logro +lombriz +lomo +lonja +lote +lucha +lucir +lugar +lujo +luna +lunes +lupa +lustro +luto +luz +maceta +macho +madera +madre +maduro +maestro +mafia +magia +mago +maíz +maldad +maleta +malla +malo +mamá +mambo +mamut +manco +mando +manejar +manga +maniquí +manjar +mano +manso +manta +mañana +mapa +máquina +mar +marco +marea +marfil +margen +marido +mármol +marrón +martes +marzo +masa +máscara +masivo +matar +materia +matiz +matriz +máximo +mayor +mazorca +mecha +medalla +medio +médula +mejilla +mejor +melena +melón +memoria +menor +mensaje +mente +menú +mercado +merengue +mérito +mes +mesón +meta +meter +método +metro +mezcla +miedo +miel +miembro +miga +mil +milagro +militar +millón +mimo +mina +minero +mínimo +minuto +miope +mirar +misa +miseria +misil +mismo +mitad +mito +mochila +moción +moda +modelo +moho +mojar +molde +moler +molino +momento +momia +monarca +moneda +monja +monto +moño +morada +morder +moreno +morir +morro +morsa +mortal +mosca +mostrar +motivo +mover +móvil +mozo +mucho +mudar +mueble +muela +muerte +muestra +mugre +mujer +mula +muleta +multa +mundo +muñeca +mural +muro +músculo +museo +musgo +música +muslo +nácar +nación +nadar +naipe +naranja +nariz +narrar +nasal +natal +nativo +natural +náusea +naval +nave +navidad +necio +néctar +negar +negocio +negro +neón +nervio +neto +neutro +nevar +nevera +nicho +nido +niebla +nieto +niñez +niño +nítido +nivel +nobleza +noche +nómina +noria +norma +norte +nota +noticia +novato +novela +novio +nube +nuca +núcleo +nudillo +nudo +nuera +nueve +nuez +nulo +número +nutria +oasis +obeso +obispo +objeto +obra +obrero +observar +obtener +obvio +oca +ocaso +océano +ochenta +ocho +ocio +ocre +octavo +octubre +oculto +ocupar +ocurrir +odiar +odio +odisea +oeste +ofensa +oferta +oficio +ofrecer +ogro +oído +oír +ojo +ola +oleada +olfato +olivo +olla +olmo +olor +olvido +ombligo +onda +onza +opaco +opción +ópera +opinar +oponer +optar +óptica +opuesto +oración +orador +oral +órbita +orca +orden +oreja +órgano +orgía +orgullo +oriente +origen +orilla +oro +orquesta +oruga +osadía +oscuro +osezno +oso +ostra +otoño +otro +oveja +óvulo +óxido +oxígeno +oyente +ozono +pacto +padre +paella +página +pago +país +pájaro +palabra +palco +paleta +pálido +palma +paloma +palpar +pan +panal +pánico +pantera +pañuelo +papá +papel +papilla +paquete +parar +parcela +pared +parir +paro +párpado +parque +párrafo +parte +pasar +paseo +pasión +paso +pasta +pata +patio +patria +pausa +pauta +pavo +payaso +peatón +pecado +pecera +pecho +pedal +pedir +pegar +peine +pelar +peldaño +pelea +peligro +pellejo +pelo +peluca +pena +pensar +peñón +peón +peor +pepino +pequeño +pera +percha +perder +pereza +perfil +perico +perla +permiso +perro +persona +pesa +pesca +pésimo +pestaña +pétalo +petróleo +pez +pezuña +picar +pichón +pie +piedra +pierna +pieza +pijama +pilar +piloto +pimienta +pino +pintor +pinza +piña +piojo +pipa +pirata +pisar +piscina +piso +pista +pitón +pizca +placa +plan +plata +playa +plaza +pleito +pleno +plomo +pluma +plural +pobre +poco +poder +podio +poema +poesía +poeta +polen +policía +pollo +polvo +pomada +pomelo +pomo +pompa +poner +porción +portal +posada +poseer +posible +poste +potencia +potro +pozo +prado +precoz +pregunta +premio +prensa +preso +previo +primo +príncipe +prisión +privar +proa +probar +proceso +producto +proeza +profesor +programa +prole +promesa +pronto +propio +próximo +prueba +público +puchero +pudor +pueblo +puerta +puesto +pulga +pulir +pulmón +pulpo +pulso +puma +punto +puñal +puño +pupa +pupila +puré +quedar +queja +quemar +querer +queso +quieto +química +quince +quitar +rábano +rabia +rabo +ración +radical +raíz +rama +rampa +rancho +rango +rapaz +rápido +rapto +rasgo +raspa +rato +rayo +raza +razón +reacción +realidad +rebaño +rebote +recaer +receta +rechazo +recoger +recreo +recto +recurso +red +redondo +reducir +reflejo +reforma +refrán +refugio +regalo +regir +regla +regreso +rehén +reino +reír +reja +relato +relevo +relieve +relleno +reloj +remar +remedio +remo +rencor +rendir +renta +reparto +repetir +reposo +reptil +res +rescate +resina +respeto +resto +resumen +retiro +retorno +retrato +reunir +revés +revista +rey +rezar +rico +riego +rienda +riesgo +rifa +rígido +rigor +rincón +riñón +río +riqueza +risa +ritmo +rito +rizo +roble +roce +rociar +rodar +rodeo +rodilla +roer +rojizo +rojo +romero +romper +ron +ronco +ronda +ropa +ropero +rosa +rosca +rostro +rotar +rubí +rubor +rudo +rueda +rugir +ruido +ruina +ruleta +rulo +rumbo +rumor +ruptura +ruta +rutina +sábado +saber +sabio +sable +sacar +sagaz +sagrado +sala +saldo +salero +salir +salmón +salón +salsa +salto +salud +salvar +samba +sanción +sandía +sanear +sangre +sanidad +sano +santo +sapo +saque +sardina +sartén +sastre +satán +sauna +saxofón +sección +seco +secreto +secta +sed +seguir +seis +sello +selva +semana +semilla +senda +sensor +señal +señor +separar +sepia +sequía +ser +serie +sermón +servir +sesenta +sesión +seta +setenta +severo +sexo +sexto +sidra +siesta +siete +siglo +signo +sílaba +silbar +silencio +silla +símbolo +simio +sirena +sistema +sitio +situar +sobre +socio +sodio +sol +solapa +soldado +soledad +sólido +soltar +solución +sombra +sondeo +sonido +sonoro +sonrisa +sopa +soplar +soporte +sordo +sorpresa +sorteo +sostén +sótano +suave +subir +suceso +sudor +suegra +suelo +sueño +suerte +sufrir +sujeto +sultán +sumar +superar +suplir +suponer +supremo +sur +surco +sureño +surgir +susto +sutil +tabaco +tabique +tabla +tabú +taco +tacto +tajo +talar +talco +talento +talla +talón +tamaño +tambor +tango +tanque +tapa +tapete +tapia +tapón +taquilla +tarde +tarea +tarifa +tarjeta +tarot +tarro +tarta +tatuaje +tauro +taza +tazón +teatro +techo +tecla +técnica +tejado +tejer +tejido +tela +teléfono +tema +temor +templo +tenaz +tender +tener +tenis +tenso +teoría +terapia +terco +término +ternura +terror +tesis +tesoro +testigo +tetera +texto +tez +tibio +tiburón +tiempo +tienda +tierra +tieso +tigre +tijera +tilde +timbre +tímido +timo +tinta +tío +típico +tipo +tira +tirón +titán +títere +título +tiza +toalla +tobillo +tocar +tocino +todo +toga +toldo +tomar +tono +tonto +topar +tope +toque +tórax +torero +tormenta +torneo +toro +torpedo +torre +torso +tortuga +tos +tosco +toser +tóxico +trabajo +tractor +traer +tráfico +trago +traje +tramo +trance +trato +trauma +trazar +trébol +tregua +treinta +tren +trepar +tres +tribu +trigo +tripa +triste +triunfo +trofeo +trompa +tronco +tropa +trote +trozo +truco +trueno +trufa +tubería +tubo +tuerto +tumba +tumor +túnel +túnica +turbina +turismo +turno +tutor +ubicar +úlcera +umbral +unidad +unir +universo +uno +untar +uña +urbano +urbe +urgente +urna +usar +usuario +útil +utopía +uva +vaca +vacío +vacuna +vagar +vago +vaina +vajilla +vale +válido +valle +valor +válvula +vampiro +vara +variar +varón +vaso +vecino +vector +vehículo +veinte +vejez +vela +velero +veloz +vena +vencer +venda +veneno +vengar +venir +venta +venus +ver +verano +verbo +verde +vereda +verja +verso +verter +vía +viaje +vibrar +vicio +víctima +vida +vídeo +vidrio +viejo +viernes +vigor +vil +villa +vinagre +vino +viñedo +violín +viral +virgo +virtud +visor +víspera +vista +vitamina +viudo +vivaz +vivero +vivir +vivo +volcán +volumen +volver +voraz +votar +voto +voz +vuelo +vulgar +yacer +yate +yegua +yema +yerno +yeso +yodo +yoga +yogur +zafiro +zanja +zapato +zarza +zona +zorro +zumo +zurdo \ No newline at end of file diff --git a/controller.py b/seedsigner/controller.py similarity index 95% rename from controller.py rename to seedsigner/controller.py index be26ee3a..f2016a90 100644 --- a/controller.py +++ b/seedsigner/controller.py @@ -19,13 +19,31 @@ from blue_vault_wallet import BlueVaultWallet from sparrow_multisig_wallet import SparrowMultiSigWallet from generic_ur2_wallet import GenericUR2Wallet + +LANGUAGES = { + "en": "English", + # "es": "Español", + # "fr": "Français", +} + + class Controller: VERSION = "0.4.1a1" - def __init__(self) -> None: + def __init__(self, config) -> None: controller = self + # settings + self.DEBUG = config.getboolean("system", "DEBUG") + self.language_code = config.get("system", "DEFAULT_LANGUAGE") + if self.language_code not in LANGUAGES: + raise Exception(f"Unsupported language code: {self.language_code}") + + display_settings = {} + display_settings["background_color"] = config.get("system", "BACKGROUND_COLOR") + display_settings["text_color"] = config.get("system", "TEXT_COLOR") + # Input Buttons self.buttons = Buttons() @@ -48,14 +66,15 @@ class Controller: p = Process(target=CameraProcess.start, args=(self.from_camera_queue, self.to_camera_queue)) p.start() - return - def start(self, debug = False) -> None: - - if debug == False: - crash_cnt = 0 + def start(self) -> None: + if self.DEBUG: + # Let Exceptions halt execution + self.show_main_menu() + else: # Handle Unexpected crashes by restarting up to 3 times + crash_cnt = 0 while True: try: self.show_main_menu() @@ -70,8 +89,7 @@ class Controller: crash_cnt += 1 self.menu_view.draw_modal(["Crashed ..."], "", "requires hard restart") - else: - self.show_main_menu() + ### Menu ### Menu View handles navigation within the menu diff --git a/helpers/ST7789.py b/seedsigner/helpers/ST7789.py similarity index 100% rename from helpers/ST7789.py rename to seedsigner/helpers/ST7789.py diff --git a/helpers/bcur.py b/seedsigner/helpers/bcur.py similarity index 100% rename from helpers/bcur.py rename to seedsigner/helpers/bcur.py diff --git a/helpers/buttons.py b/seedsigner/helpers/buttons.py similarity index 100% rename from helpers/buttons.py rename to seedsigner/helpers/buttons.py diff --git a/helpers/camera_process.py b/seedsigner/helpers/camera_process.py similarity index 100% rename from helpers/camera_process.py rename to seedsigner/helpers/camera_process.py diff --git a/helpers/path.py b/seedsigner/helpers/path.py similarity index 100% rename from helpers/path.py rename to seedsigner/helpers/path.py diff --git a/helpers/qr.py b/seedsigner/helpers/qr.py similarity index 100% rename from helpers/qr.py rename to seedsigner/helpers/qr.py diff --git a/helpers/ur2/LICENSE b/seedsigner/helpers/ur2/LICENSE similarity index 100% rename from helpers/ur2/LICENSE rename to seedsigner/helpers/ur2/LICENSE diff --git a/helpers/ur2/__init__.py b/seedsigner/helpers/ur2/__init__.py similarity index 100% rename from helpers/ur2/__init__.py rename to seedsigner/helpers/ur2/__init__.py diff --git a/helpers/ur2/bytewords.py b/seedsigner/helpers/ur2/bytewords.py similarity index 100% rename from helpers/ur2/bytewords.py rename to seedsigner/helpers/ur2/bytewords.py diff --git a/helpers/ur2/cbor_lite.py b/seedsigner/helpers/ur2/cbor_lite.py similarity index 100% rename from helpers/ur2/cbor_lite.py rename to seedsigner/helpers/ur2/cbor_lite.py diff --git a/helpers/ur2/constants.py b/seedsigner/helpers/ur2/constants.py similarity index 100% rename from helpers/ur2/constants.py rename to seedsigner/helpers/ur2/constants.py diff --git a/helpers/ur2/crc32.py b/seedsigner/helpers/ur2/crc32.py similarity index 100% rename from helpers/ur2/crc32.py rename to seedsigner/helpers/ur2/crc32.py diff --git a/helpers/ur2/fountain_decoder.py b/seedsigner/helpers/ur2/fountain_decoder.py similarity index 100% rename from helpers/ur2/fountain_decoder.py rename to seedsigner/helpers/ur2/fountain_decoder.py diff --git a/helpers/ur2/fountain_encoder.py b/seedsigner/helpers/ur2/fountain_encoder.py similarity index 100% rename from helpers/ur2/fountain_encoder.py rename to seedsigner/helpers/ur2/fountain_encoder.py diff --git a/helpers/ur2/fountain_utils.py b/seedsigner/helpers/ur2/fountain_utils.py similarity index 100% rename from helpers/ur2/fountain_utils.py rename to seedsigner/helpers/ur2/fountain_utils.py diff --git a/helpers/ur2/random_sampler.py b/seedsigner/helpers/ur2/random_sampler.py similarity index 100% rename from helpers/ur2/random_sampler.py rename to seedsigner/helpers/ur2/random_sampler.py diff --git a/helpers/ur2/ur.py b/seedsigner/helpers/ur2/ur.py similarity index 100% rename from helpers/ur2/ur.py rename to seedsigner/helpers/ur2/ur.py diff --git a/helpers/ur2/ur_decoder.py b/seedsigner/helpers/ur2/ur_decoder.py similarity index 100% rename from helpers/ur2/ur_decoder.py rename to seedsigner/helpers/ur2/ur_decoder.py diff --git a/helpers/ur2/ur_encoder.py b/seedsigner/helpers/ur2/ur_encoder.py similarity index 100% rename from helpers/ur2/ur_encoder.py rename to seedsigner/helpers/ur2/ur_encoder.py diff --git a/helpers/ur2/utils.py b/seedsigner/helpers/ur2/utils.py similarity index 100% rename from helpers/ur2/utils.py rename to seedsigner/helpers/ur2/utils.py diff --git a/helpers/ur2/xoshiro256.py b/seedsigner/helpers/ur2/xoshiro256.py similarity index 100% rename from helpers/ur2/xoshiro256.py rename to seedsigner/helpers/ur2/xoshiro256.py diff --git a/main.py b/seedsigner/main.py similarity index 51% rename from main.py rename to seedsigner/main.py index 3b1f387d..8b898ed2 100644 --- a/main.py +++ b/seedsigner/main.py @@ -1,12 +1,16 @@ +import configparser import sys +import time + sys.path.append('./views') sys.path.append('./models') sys.path.append('./helpers') from controller import Controller -import time -DEBUG = True -controller = Controller() -controller.start(DEBUG) \ No newline at end of file +config = configparser.ConfigParser() +config.read("settings.ini") + +controller = Controller(config) +controller.start() diff --git a/models/blue_vault_wallet.py b/seedsigner/models/blue_vault_wallet.py similarity index 100% rename from models/blue_vault_wallet.py rename to seedsigner/models/blue_vault_wallet.py diff --git a/models/generic_ur2_wallet.py b/seedsigner/models/generic_ur2_wallet.py similarity index 100% rename from models/generic_ur2_wallet.py rename to seedsigner/models/generic_ur2_wallet.py diff --git a/models/seed_storage.py b/seedsigner/models/seed_storage.py similarity index 100% rename from models/seed_storage.py rename to seedsigner/models/seed_storage.py diff --git a/models/sparrow_multisig_wallet.py b/seedsigner/models/sparrow_multisig_wallet.py similarity index 100% rename from models/sparrow_multisig_wallet.py rename to seedsigner/models/sparrow_multisig_wallet.py diff --git a/models/specter_desktop_multisig_wallet.py b/seedsigner/models/specter_desktop_multisig_wallet.py similarity index 100% rename from models/specter_desktop_multisig_wallet.py rename to seedsigner/models/specter_desktop_multisig_wallet.py diff --git a/models/specter_desktop_single_sig_wallet.py b/seedsigner/models/specter_desktop_single_sig_wallet.py similarity index 100% rename from models/specter_desktop_single_sig_wallet.py rename to seedsigner/models/specter_desktop_single_sig_wallet.py diff --git a/models/wallet.py b/seedsigner/models/wallet.py similarity index 100% rename from models/wallet.py rename to seedsigner/models/wallet.py diff --git a/seedsigner/settings.ini b/seedsigner/settings.ini new file mode 100644 index 00000000..0c5a68ec --- /dev/null +++ b/seedsigner/settings.ini @@ -0,0 +1,7 @@ +[system] +DEBUG = True +DEFAULT_LANGUAGE = en + +[display] +BACKGROUND_COLOR = #666 +TEXT_COLOR = #cc66cc diff --git a/views/io_test_view.py b/seedsigner/views/io_test_view.py similarity index 100% rename from views/io_test_view.py rename to seedsigner/views/io_test_view.py diff --git a/views/menu_view.py b/seedsigner/views/menu_view.py similarity index 100% rename from views/menu_view.py rename to seedsigner/views/menu_view.py diff --git a/views/seed_tools_view.py b/seedsigner/views/seed_tools_view.py similarity index 100% rename from views/seed_tools_view.py rename to seedsigner/views/seed_tools_view.py diff --git a/views/settings_tools_view.py b/seedsigner/views/settings_tools_view.py similarity index 100% rename from views/settings_tools_view.py rename to seedsigner/views/settings_tools_view.py diff --git a/views/signing_tools_view.py b/seedsigner/views/signing_tools_view.py similarity index 100% rename from views/signing_tools_view.py rename to seedsigner/views/signing_tools_view.py diff --git a/views/view.py b/seedsigner/views/view.py similarity index 100% rename from views/view.py rename to seedsigner/views/view.py From 68872661489a5f9728fd4b0496379ed8b90e28a7 Mon Sep 17 00:00:00 2001 From: kdmukai Date: Wed, 23 Jun 2021 21:50:57 -0500 Subject: [PATCH 03/12] commit fixes --- seedsigner/bip39/es.py | 2048 --------------------------------------- seedsigner/settings.ini | 4 +- 2 files changed, 2 insertions(+), 2050 deletions(-) delete mode 100644 seedsigner/bip39/es.py diff --git a/seedsigner/bip39/es.py b/seedsigner/bip39/es.py deleted file mode 100644 index 12557a26..00000000 --- a/seedsigner/bip39/es.py +++ /dev/null @@ -1,2048 +0,0 @@ -ábaco -abdomen -abeja -abierto -abogado -abono -aborto -abrazo -abrir -abuelo -abuso -acabar -academia -acceso -acción -aceite -acelga -acento -aceptar -ácido -aclarar -acné -acoger -acoso -activo -acto -actriz -actuar -acudir -acuerdo -acusar -adicto -admitir -adoptar -adorno -aduana -adulto -aéreo -afectar -afición -afinar -afirmar -ágil -agitar -agonía -agosto -agotar -agregar -agrio -agua -agudo -águila -aguja -ahogo -ahorro -aire -aislar -ajedrez -ajeno -ajuste -alacrán -alambre -alarma -alba -álbum -alcalde -aldea -alegre -alejar -alerta -aleta -alfiler -alga -algodón -aliado -aliento -alivio -alma -almeja -almíbar -altar -alteza -altivo -alto -altura -alumno -alzar -amable -amante -amapola -amargo -amasar -ámbar -ámbito -ameno -amigo -amistad -amor -amparo -amplio -ancho -anciano -ancla -andar -andén -anemia -ángulo -anillo -ánimo -anís -anotar -antena -antiguo -antojo -anual -anular -anuncio -añadir -añejo -año -apagar -aparato -apetito -apio -aplicar -apodo -aporte -apoyo -aprender -aprobar -apuesta -apuro -arado -araña -arar -árbitro -árbol -arbusto -archivo -arco -arder -ardilla -arduo -área -árido -aries -armonía -arnés -aroma -arpa -arpón -arreglo -arroz -arruga -arte -artista -asa -asado -asalto -ascenso -asegurar -aseo -asesor -asiento -asilo -asistir -asno -asombro -áspero -astilla -astro -astuto -asumir -asunto -atajo -ataque -atar -atento -ateo -ático -atleta -átomo -atraer -atroz -atún -audaz -audio -auge -aula -aumento -ausente -autor -aval -avance -avaro -ave -avellana -avena -avestruz -avión -aviso -ayer -ayuda -ayuno -azafrán -azar -azote -azúcar -azufre -azul -baba -babor -bache -bahía -baile -bajar -balanza -balcón -balde -bambú -banco -banda -baño -barba -barco -barniz -barro -báscula -bastón -basura -batalla -batería -batir -batuta -baúl -bazar -bebé -bebida -bello -besar -beso -bestia -bicho -bien -bingo -blanco -bloque -blusa -boa -bobina -bobo -boca -bocina -boda -bodega -boina -bola -bolero -bolsa -bomba -bondad -bonito -bono -bonsái -borde -borrar -bosque -bote -botín -bóveda -bozal -bravo -brazo -brecha -breve -brillo -brinco -brisa -broca -broma -bronce -brote -bruja -brusco -bruto -buceo -bucle -bueno -buey -bufanda -bufón -búho -buitre -bulto -burbuja -burla -burro -buscar -butaca -buzón -caballo -cabeza -cabina -cabra -cacao -cadáver -cadena -caer -café -caída -caimán -caja -cajón -cal -calamar -calcio -caldo -calidad -calle -calma -calor -calvo -cama -cambio -camello -camino -campo -cáncer -candil -canela -canguro -canica -canto -caña -cañón -caoba -caos -capaz -capitán -capote -captar -capucha -cara -carbón -cárcel -careta -carga -cariño -carne -carpeta -carro -carta -casa -casco -casero -caspa -castor -catorce -catre -caudal -causa -cazo -cebolla -ceder -cedro -celda -célebre -celoso -célula -cemento -ceniza -centro -cerca -cerdo -cereza -cero -cerrar -certeza -césped -cetro -chacal -chaleco -champú -chancla -chapa -charla -chico -chiste -chivo -choque -choza -chuleta -chupar -ciclón -ciego -cielo -cien -cierto -cifra -cigarro -cima -cinco -cine -cinta -ciprés -circo -ciruela -cisne -cita -ciudad -clamor -clan -claro -clase -clave -cliente -clima -clínica -cobre -cocción -cochino -cocina -coco -código -codo -cofre -coger -cohete -cojín -cojo -cola -colcha -colegio -colgar -colina -collar -colmo -columna -combate -comer -comida -cómodo -compra -conde -conejo -conga -conocer -consejo -contar -copa -copia -corazón -corbata -corcho -cordón -corona -correr -coser -cosmos -costa -cráneo -cráter -crear -crecer -creído -crema -cría -crimen -cripta -crisis -cromo -crónica -croqueta -crudo -cruz -cuadro -cuarto -cuatro -cubo -cubrir -cuchara -cuello -cuento -cuerda -cuesta -cueva -cuidar -culebra -culpa -culto -cumbre -cumplir -cuna -cuneta -cuota -cupón -cúpula -curar -curioso -curso -curva -cutis -dama -danza -dar -dardo -dátil -deber -débil -década -decir -dedo -defensa -definir -dejar -delfín -delgado -delito -demora -denso -dental -deporte -derecho -derrota -desayuno -deseo -desfile -desnudo -destino -desvío -detalle -detener -deuda -día -diablo -diadema -diamante -diana -diario -dibujo -dictar -diente -dieta -diez -difícil -digno -dilema -diluir -dinero -directo -dirigir -disco -diseño -disfraz -diva -divino -doble -doce -dolor -domingo -don -donar -dorado -dormir -dorso -dos -dosis -dragón -droga -ducha -duda -duelo -dueño -dulce -dúo -duque -durar -dureza -duro -ébano -ebrio -echar -eco -ecuador -edad -edición -edificio -editor -educar -efecto -eficaz -eje -ejemplo -elefante -elegir -elemento -elevar -elipse -élite -elixir -elogio -eludir -embudo -emitir -emoción -empate -empeño -empleo -empresa -enano -encargo -enchufe -encía -enemigo -enero -enfado -enfermo -engaño -enigma -enlace -enorme -enredo -ensayo -enseñar -entero -entrar -envase -envío -época -equipo -erizo -escala -escena -escolar -escribir -escudo -esencia -esfera -esfuerzo -espada -espejo -espía -esposa -espuma -esquí -estar -este -estilo -estufa -etapa -eterno -ética -etnia -evadir -evaluar -evento -evitar -exacto -examen -exceso -excusa -exento -exigir -exilio -existir -éxito -experto -explicar -exponer -extremo -fábrica -fábula -fachada -fácil -factor -faena -faja -falda -fallo -falso -faltar -fama -familia -famoso -faraón -farmacia -farol -farsa -fase -fatiga -fauna -favor -fax -febrero -fecha -feliz -feo -feria -feroz -fértil -fervor -festín -fiable -fianza -fiar -fibra -ficción -ficha -fideo -fiebre -fiel -fiera -fiesta -figura -fijar -fijo -fila -filete -filial -filtro -fin -finca -fingir -finito -firma -flaco -flauta -flecha -flor -flota -fluir -flujo -flúor -fobia -foca -fogata -fogón -folio -folleto -fondo -forma -forro -fortuna -forzar -fosa -foto -fracaso -frágil -franja -frase -fraude -freír -freno -fresa -frío -frito -fruta -fuego -fuente -fuerza -fuga -fumar -función -funda -furgón -furia -fusil -fútbol -futuro -gacela -gafas -gaita -gajo -gala -galería -gallo -gamba -ganar -gancho -ganga -ganso -garaje -garza -gasolina -gastar -gato -gavilán -gemelo -gemir -gen -género -genio -gente -geranio -gerente -germen -gesto -gigante -gimnasio -girar -giro -glaciar -globo -gloria -gol -golfo -goloso -golpe -goma -gordo -gorila -gorra -gota -goteo -gozar -grada -gráfico -grano -grasa -gratis -grave -grieta -grillo -gripe -gris -grito -grosor -grúa -grueso -grumo -grupo -guante -guapo -guardia -guerra -guía -guiño -guion -guiso -guitarra -gusano -gustar -haber -hábil -hablar -hacer -hacha -hada -hallar -hamaca -harina -haz -hazaña -hebilla -hebra -hecho -helado -helio -hembra -herir -hermano -héroe -hervir -hielo -hierro -hígado -higiene -hijo -himno -historia -hocico -hogar -hoguera -hoja -hombre -hongo -honor -honra -hora -hormiga -horno -hostil -hoyo -hueco -huelga -huerta -hueso -huevo -huida -huir -humano -húmedo -humilde -humo -hundir -huracán -hurto -icono -ideal -idioma -ídolo -iglesia -iglú -igual -ilegal -ilusión -imagen -imán -imitar -impar -imperio -imponer -impulso -incapaz -índice -inerte -infiel -informe -ingenio -inicio -inmenso -inmune -innato -insecto -instante -interés -íntimo -intuir -inútil -invierno -ira -iris -ironía -isla -islote -jabalí -jabón -jamón -jarabe -jardín -jarra -jaula -jazmín -jefe -jeringa -jinete -jornada -joroba -joven -joya -juerga -jueves -juez -jugador -jugo -juguete -juicio -junco -jungla -junio -juntar -júpiter -jurar -justo -juvenil -juzgar -kilo -koala -labio -lacio -lacra -lado -ladrón -lagarto -lágrima -laguna -laico -lamer -lámina -lámpara -lana -lancha -langosta -lanza -lápiz -largo -larva -lástima -lata -látex -latir -laurel -lavar -lazo -leal -lección -leche -lector -leer -legión -legumbre -lejano -lengua -lento -leña -león -leopardo -lesión -letal -letra -leve -leyenda -libertad -libro -licor -líder -lidiar -lienzo -liga -ligero -lima -límite -limón -limpio -lince -lindo -línea -lingote -lino -linterna -líquido -liso -lista -litera -litio -litro -llaga -llama -llanto -llave -llegar -llenar -llevar -llorar -llover -lluvia -lobo -loción -loco -locura -lógica -logro -lombriz -lomo -lonja -lote -lucha -lucir -lugar -lujo -luna -lunes -lupa -lustro -luto -luz -maceta -macho -madera -madre -maduro -maestro -mafia -magia -mago -maíz -maldad -maleta -malla -malo -mamá -mambo -mamut -manco -mando -manejar -manga -maniquí -manjar -mano -manso -manta -mañana -mapa -máquina -mar -marco -marea -marfil -margen -marido -mármol -marrón -martes -marzo -masa -máscara -masivo -matar -materia -matiz -matriz -máximo -mayor -mazorca -mecha -medalla -medio -médula -mejilla -mejor -melena -melón -memoria -menor -mensaje -mente -menú -mercado -merengue -mérito -mes -mesón -meta -meter -método -metro -mezcla -miedo -miel -miembro -miga -mil -milagro -militar -millón -mimo -mina -minero -mínimo -minuto -miope -mirar -misa -miseria -misil -mismo -mitad -mito -mochila -moción -moda -modelo -moho -mojar -molde -moler -molino -momento -momia -monarca -moneda -monja -monto -moño -morada -morder -moreno -morir -morro -morsa -mortal -mosca -mostrar -motivo -mover -móvil -mozo -mucho -mudar -mueble -muela -muerte -muestra -mugre -mujer -mula -muleta -multa -mundo -muñeca -mural -muro -músculo -museo -musgo -música -muslo -nácar -nación -nadar -naipe -naranja -nariz -narrar -nasal -natal -nativo -natural -náusea -naval -nave -navidad -necio -néctar -negar -negocio -negro -neón -nervio -neto -neutro -nevar -nevera -nicho -nido -niebla -nieto -niñez -niño -nítido -nivel -nobleza -noche -nómina -noria -norma -norte -nota -noticia -novato -novela -novio -nube -nuca -núcleo -nudillo -nudo -nuera -nueve -nuez -nulo -número -nutria -oasis -obeso -obispo -objeto -obra -obrero -observar -obtener -obvio -oca -ocaso -océano -ochenta -ocho -ocio -ocre -octavo -octubre -oculto -ocupar -ocurrir -odiar -odio -odisea -oeste -ofensa -oferta -oficio -ofrecer -ogro -oído -oír -ojo -ola -oleada -olfato -olivo -olla -olmo -olor -olvido -ombligo -onda -onza -opaco -opción -ópera -opinar -oponer -optar -óptica -opuesto -oración -orador -oral -órbita -orca -orden -oreja -órgano -orgía -orgullo -oriente -origen -orilla -oro -orquesta -oruga -osadía -oscuro -osezno -oso -ostra -otoño -otro -oveja -óvulo -óxido -oxígeno -oyente -ozono -pacto -padre -paella -página -pago -país -pájaro -palabra -palco -paleta -pálido -palma -paloma -palpar -pan -panal -pánico -pantera -pañuelo -papá -papel -papilla -paquete -parar -parcela -pared -parir -paro -párpado -parque -párrafo -parte -pasar -paseo -pasión -paso -pasta -pata -patio -patria -pausa -pauta -pavo -payaso -peatón -pecado -pecera -pecho -pedal -pedir -pegar -peine -pelar -peldaño -pelea -peligro -pellejo -pelo -peluca -pena -pensar -peñón -peón -peor -pepino -pequeño -pera -percha -perder -pereza -perfil -perico -perla -permiso -perro -persona -pesa -pesca -pésimo -pestaña -pétalo -petróleo -pez -pezuña -picar -pichón -pie -piedra -pierna -pieza -pijama -pilar -piloto -pimienta -pino -pintor -pinza -piña -piojo -pipa -pirata -pisar -piscina -piso -pista -pitón -pizca -placa -plan -plata -playa -plaza -pleito -pleno -plomo -pluma -plural -pobre -poco -poder -podio -poema -poesía -poeta -polen -policía -pollo -polvo -pomada -pomelo -pomo -pompa -poner -porción -portal -posada -poseer -posible -poste -potencia -potro -pozo -prado -precoz -pregunta -premio -prensa -preso -previo -primo -príncipe -prisión -privar -proa -probar -proceso -producto -proeza -profesor -programa -prole -promesa -pronto -propio -próximo -prueba -público -puchero -pudor -pueblo -puerta -puesto -pulga -pulir -pulmón -pulpo -pulso -puma -punto -puñal -puño -pupa -pupila -puré -quedar -queja -quemar -querer -queso -quieto -química -quince -quitar -rábano -rabia -rabo -ración -radical -raíz -rama -rampa -rancho -rango -rapaz -rápido -rapto -rasgo -raspa -rato -rayo -raza -razón -reacción -realidad -rebaño -rebote -recaer -receta -rechazo -recoger -recreo -recto -recurso -red -redondo -reducir -reflejo -reforma -refrán -refugio -regalo -regir -regla -regreso -rehén -reino -reír -reja -relato -relevo -relieve -relleno -reloj -remar -remedio -remo -rencor -rendir -renta -reparto -repetir -reposo -reptil -res -rescate -resina -respeto -resto -resumen -retiro -retorno -retrato -reunir -revés -revista -rey -rezar -rico -riego -rienda -riesgo -rifa -rígido -rigor -rincón -riñón -río -riqueza -risa -ritmo -rito -rizo -roble -roce -rociar -rodar -rodeo -rodilla -roer -rojizo -rojo -romero -romper -ron -ronco -ronda -ropa -ropero -rosa -rosca -rostro -rotar -rubí -rubor -rudo -rueda -rugir -ruido -ruina -ruleta -rulo -rumbo -rumor -ruptura -ruta -rutina -sábado -saber -sabio -sable -sacar -sagaz -sagrado -sala -saldo -salero -salir -salmón -salón -salsa -salto -salud -salvar -samba -sanción -sandía -sanear -sangre -sanidad -sano -santo -sapo -saque -sardina -sartén -sastre -satán -sauna -saxofón -sección -seco -secreto -secta -sed -seguir -seis -sello -selva -semana -semilla -senda -sensor -señal -señor -separar -sepia -sequía -ser -serie -sermón -servir -sesenta -sesión -seta -setenta -severo -sexo -sexto -sidra -siesta -siete -siglo -signo -sílaba -silbar -silencio -silla -símbolo -simio -sirena -sistema -sitio -situar -sobre -socio -sodio -sol -solapa -soldado -soledad -sólido -soltar -solución -sombra -sondeo -sonido -sonoro -sonrisa -sopa -soplar -soporte -sordo -sorpresa -sorteo -sostén -sótano -suave -subir -suceso -sudor -suegra -suelo -sueño -suerte -sufrir -sujeto -sultán -sumar -superar -suplir -suponer -supremo -sur -surco -sureño -surgir -susto -sutil -tabaco -tabique -tabla -tabú -taco -tacto -tajo -talar -talco -talento -talla -talón -tamaño -tambor -tango -tanque -tapa -tapete -tapia -tapón -taquilla -tarde -tarea -tarifa -tarjeta -tarot -tarro -tarta -tatuaje -tauro -taza -tazón -teatro -techo -tecla -técnica -tejado -tejer -tejido -tela -teléfono -tema -temor -templo -tenaz -tender -tener -tenis -tenso -teoría -terapia -terco -término -ternura -terror -tesis -tesoro -testigo -tetera -texto -tez -tibio -tiburón -tiempo -tienda -tierra -tieso -tigre -tijera -tilde -timbre -tímido -timo -tinta -tío -típico -tipo -tira -tirón -titán -títere -título -tiza -toalla -tobillo -tocar -tocino -todo -toga -toldo -tomar -tono -tonto -topar -tope -toque -tórax -torero -tormenta -torneo -toro -torpedo -torre -torso -tortuga -tos -tosco -toser -tóxico -trabajo -tractor -traer -tráfico -trago -traje -tramo -trance -trato -trauma -trazar -trébol -tregua -treinta -tren -trepar -tres -tribu -trigo -tripa -triste -triunfo -trofeo -trompa -tronco -tropa -trote -trozo -truco -trueno -trufa -tubería -tubo -tuerto -tumba -tumor -túnel -túnica -turbina -turismo -turno -tutor -ubicar -úlcera -umbral -unidad -unir -universo -uno -untar -uña -urbano -urbe -urgente -urna -usar -usuario -útil -utopía -uva -vaca -vacío -vacuna -vagar -vago -vaina -vajilla -vale -válido -valle -valor -válvula -vampiro -vara -variar -varón -vaso -vecino -vector -vehículo -veinte -vejez -vela -velero -veloz -vena -vencer -venda -veneno -vengar -venir -venta -venus -ver -verano -verbo -verde -vereda -verja -verso -verter -vía -viaje -vibrar -vicio -víctima -vida -vídeo -vidrio -viejo -viernes -vigor -vil -villa -vinagre -vino -viñedo -violín -viral -virgo -virtud -visor -víspera -vista -vitamina -viudo -vivaz -vivero -vivir -vivo -volcán -volumen -volver -voraz -votar -voto -voz -vuelo -vulgar -yacer -yate -yegua -yema -yerno -yeso -yodo -yoga -yogur -zafiro -zanja -zapato -zarza -zona -zorro -zumo -zurdo \ No newline at end of file diff --git a/seedsigner/settings.ini b/seedsigner/settings.ini index 0c5a68ec..d1da9ba6 100644 --- a/seedsigner/settings.ini +++ b/seedsigner/settings.ini @@ -3,5 +3,5 @@ DEBUG = True DEFAULT_LANGUAGE = en [display] -BACKGROUND_COLOR = #666 -TEXT_COLOR = #cc66cc +BACKGROUND_COLOR = #000 +TEXT_COLOR = orange From d1a086ee108d3acf207ce1f26caacb65bc612b0b Mon Sep 17 00:00:00 2001 From: kdmukai Date: Wed, 23 Jun 2021 21:52:56 -0500 Subject: [PATCH 04/12] bugfix --- seedsigner/controller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seedsigner/controller.py b/seedsigner/controller.py index f2016a90..10c2f428 100644 --- a/seedsigner/controller.py +++ b/seedsigner/controller.py @@ -41,8 +41,8 @@ class Controller: raise Exception(f"Unsupported language code: {self.language_code}") display_settings = {} - display_settings["background_color"] = config.get("system", "BACKGROUND_COLOR") - display_settings["text_color"] = config.get("system", "TEXT_COLOR") + display_settings["background_color"] = config.get("display", "BACKGROUND_COLOR") + display_settings["text_color"] = config.get("display", "TEXT_COLOR") # Input Buttons self.buttons = Buttons() From 4e738a95adf96f2adefa1aba14b9f48f04927191 Mon Sep 17 00:00:00 2001 From: kdmukai Date: Wed, 23 Jun 2021 22:16:15 -0500 Subject: [PATCH 05/12] Update controller.py --- seedsigner/controller.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/seedsigner/controller.py b/seedsigner/controller.py index 10c2f428..5c27e406 100644 --- a/seedsigner/controller.py +++ b/seedsigner/controller.py @@ -20,13 +20,6 @@ from sparrow_multisig_wallet import SparrowMultiSigWallet from generic_ur2_wallet import GenericUR2Wallet -LANGUAGES = { - "en": "English", - # "es": "Español", - # "fr": "Français", -} - - class Controller: VERSION = "0.4.1a1" @@ -36,13 +29,6 @@ class Controller: # settings self.DEBUG = config.getboolean("system", "DEBUG") - self.language_code = config.get("system", "DEFAULT_LANGUAGE") - if self.language_code not in LANGUAGES: - raise Exception(f"Unsupported language code: {self.language_code}") - - display_settings = {} - display_settings["background_color"] = config.get("display", "BACKGROUND_COLOR") - display_settings["text_color"] = config.get("display", "TEXT_COLOR") # Input Buttons self.buttons = Buttons() From 14cb019aec1c73f49df1d0d5be355c68dcdb01d8 Mon Sep 17 00:00:00 2001 From: kdmukai Date: Wed, 23 Jun 2021 23:13:26 -0500 Subject: [PATCH 06/12] Standardizing imports --- {seedsigner => src}/main.py | 6 +--- {seedsigner => src/seedsigner}/controller.py | 19 +++--------- .../seedsigner}/helpers/ST7789.py | 0 src/seedsigner/helpers/__init__.py | 5 +++ .../seedsigner}/helpers/bcur.py | 0 .../seedsigner}/helpers/buttons.py | 0 .../seedsigner}/helpers/camera_process.py | 0 .../seedsigner}/helpers/path.py | 0 {seedsigner => src/seedsigner}/helpers/qr.py | 0 .../seedsigner}/helpers/ur2/LICENSE | 0 .../seedsigner}/helpers/ur2/__init__.py | 0 .../seedsigner}/helpers/ur2/bytewords.py | 0 .../seedsigner}/helpers/ur2/cbor_lite.py | 0 .../seedsigner}/helpers/ur2/constants.py | 0 .../seedsigner}/helpers/ur2/crc32.py | 0 .../helpers/ur2/fountain_decoder.py | 0 .../helpers/ur2/fountain_encoder.py | 0 .../seedsigner}/helpers/ur2/fountain_utils.py | 0 .../seedsigner}/helpers/ur2/random_sampler.py | 0 .../seedsigner}/helpers/ur2/ur.py | 0 .../seedsigner}/helpers/ur2/ur_decoder.py | 0 .../seedsigner}/helpers/ur2/ur_encoder.py | 0 .../seedsigner}/helpers/ur2/utils.py | 0 .../seedsigner}/helpers/ur2/xoshiro256.py | 0 src/seedsigner/models/__init__.py | 6 ++++ .../seedsigner}/models/blue_vault_wallet.py | 7 +++-- .../seedsigner}/models/generic_ur2_wallet.py | 20 ++++++------ .../seedsigner}/models/seed_storage.py | 3 +- .../models/sparrow_multisig_wallet.py | 31 ++++++++----------- .../models/specter_desktop_multisig_wallet.py | 13 +++----- .../specter_desktop_single_sig_wallet.py | 13 +++----- .../seedsigner}/models/wallet.py | 15 +++------ {seedsigner => src/seedsigner}/settings.ini | 0 src/seedsigner/views/__init__.py | 6 ++++ .../seedsigner}/views/io_test_view.py | 6 ++-- .../seedsigner}/views/menu_view.py | 7 ++--- .../seedsigner}/views/seed_tools_view.py | 8 ++--- .../seedsigner}/views/settings_tools_view.py | 6 ++-- .../seedsigner}/views/signing_tools_view.py | 5 +-- {seedsigner => src/seedsigner}/views/view.py | 7 ++--- 40 files changed, 81 insertions(+), 102 deletions(-) rename {seedsigner => src}/main.py (57%) rename {seedsigner => src/seedsigner}/controller.py (96%) rename {seedsigner => src/seedsigner}/helpers/ST7789.py (100%) create mode 100644 src/seedsigner/helpers/__init__.py rename {seedsigner => src/seedsigner}/helpers/bcur.py (100%) rename {seedsigner => src/seedsigner}/helpers/buttons.py (100%) rename {seedsigner => src/seedsigner}/helpers/camera_process.py (100%) rename {seedsigner => src/seedsigner}/helpers/path.py (100%) rename {seedsigner => src/seedsigner}/helpers/qr.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/LICENSE (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/__init__.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/bytewords.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/cbor_lite.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/constants.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/crc32.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/fountain_decoder.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/fountain_encoder.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/fountain_utils.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/random_sampler.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/ur.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/ur_decoder.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/ur_encoder.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/utils.py (100%) rename {seedsigner => src/seedsigner}/helpers/ur2/xoshiro256.py (100%) create mode 100644 src/seedsigner/models/__init__.py rename {seedsigner => src/seedsigner}/models/blue_vault_wallet.py (96%) rename {seedsigner => src/seedsigner}/models/generic_ur2_wallet.py (93%) rename {seedsigner => src/seedsigner}/models/seed_storage.py (97%) rename {seedsigner => src/seedsigner}/models/sparrow_multisig_wallet.py (91%) rename {seedsigner => src/seedsigner}/models/specter_desktop_multisig_wallet.py (93%) rename {seedsigner => src/seedsigner}/models/specter_desktop_single_sig_wallet.py (77%) rename {seedsigner => src/seedsigner}/models/wallet.py (97%) rename {seedsigner => src/seedsigner}/settings.ini (100%) create mode 100644 src/seedsigner/views/__init__.py rename {seedsigner => src/seedsigner}/views/io_test_view.py (98%) rename {seedsigner => src/seedsigner}/views/menu_view.py (99%) rename {seedsigner => src/seedsigner}/views/seed_tools_view.py (99%) rename {seedsigner => src/seedsigner}/views/settings_tools_view.py (97%) rename {seedsigner => src/seedsigner}/views/signing_tools_view.py (98%) rename {seedsigner => src/seedsigner}/views/view.py (99%) diff --git a/seedsigner/main.py b/src/main.py similarity index 57% rename from seedsigner/main.py rename to src/main.py index 8b898ed2..1bb2a4b2 100644 --- a/seedsigner/main.py +++ b/src/main.py @@ -2,11 +2,7 @@ import configparser import sys import time -sys.path.append('./views') -sys.path.append('./models') -sys.path.append('./helpers') - -from controller import Controller +from seedsigner.controller import Controller config = configparser.ConfigParser() diff --git a/seedsigner/controller.py b/src/seedsigner/controller.py similarity index 96% rename from seedsigner/controller.py rename to src/seedsigner/controller.py index 5c27e406..0313ba1b 100644 --- a/seedsigner/controller.py +++ b/src/seedsigner/controller.py @@ -4,20 +4,11 @@ from multiprocessing import Process, Queue from subprocess import call # Internal file class dependencies -from view import View -from menu_view import MenuView -from seed_tools_view import SeedToolsView -from signing_tools_view import SigningToolsView -from settings_tools_view import SettingsToolsView -from io_test_view import IOTestView -from buttons import Buttons, B -from camera_process import CameraProcess -from path import Path -from seed_storage import SeedStorage -from specter_desktop_multisig_wallet import SpecterDesktopMultisigWallet -from blue_vault_wallet import BlueVaultWallet -from sparrow_multisig_wallet import SparrowMultiSigWallet -from generic_ur2_wallet import GenericUR2Wallet +from .views import (View, MenuView, SeedToolsView,SigningToolsView, + SettingsToolsView, IOTestView) +from .helpers import Buttons, B, CameraProcess,Path +from .models import (SeedStorage, SpecterDesktopMultisigWallet, BlueVaultWallet, + SparrowMultiSigWallet, GenericUR2Wallet) class Controller: diff --git a/seedsigner/helpers/ST7789.py b/src/seedsigner/helpers/ST7789.py similarity index 100% rename from seedsigner/helpers/ST7789.py rename to src/seedsigner/helpers/ST7789.py diff --git a/src/seedsigner/helpers/__init__.py b/src/seedsigner/helpers/__init__.py new file mode 100644 index 00000000..d7ac320b --- /dev/null +++ b/src/seedsigner/helpers/__init__.py @@ -0,0 +1,5 @@ +from buttons import Buttons, B +from camera_process import CameraProcess, CameraPoll +from path import Path +from qr import QR +from ST7789 import ST7789 \ No newline at end of file diff --git a/seedsigner/helpers/bcur.py b/src/seedsigner/helpers/bcur.py similarity index 100% rename from seedsigner/helpers/bcur.py rename to src/seedsigner/helpers/bcur.py diff --git a/seedsigner/helpers/buttons.py b/src/seedsigner/helpers/buttons.py similarity index 100% rename from seedsigner/helpers/buttons.py rename to src/seedsigner/helpers/buttons.py diff --git a/seedsigner/helpers/camera_process.py b/src/seedsigner/helpers/camera_process.py similarity index 100% rename from seedsigner/helpers/camera_process.py rename to src/seedsigner/helpers/camera_process.py diff --git a/seedsigner/helpers/path.py b/src/seedsigner/helpers/path.py similarity index 100% rename from seedsigner/helpers/path.py rename to src/seedsigner/helpers/path.py diff --git a/seedsigner/helpers/qr.py b/src/seedsigner/helpers/qr.py similarity index 100% rename from seedsigner/helpers/qr.py rename to src/seedsigner/helpers/qr.py diff --git a/seedsigner/helpers/ur2/LICENSE b/src/seedsigner/helpers/ur2/LICENSE similarity index 100% rename from seedsigner/helpers/ur2/LICENSE rename to src/seedsigner/helpers/ur2/LICENSE diff --git a/seedsigner/helpers/ur2/__init__.py b/src/seedsigner/helpers/ur2/__init__.py similarity index 100% rename from seedsigner/helpers/ur2/__init__.py rename to src/seedsigner/helpers/ur2/__init__.py diff --git a/seedsigner/helpers/ur2/bytewords.py b/src/seedsigner/helpers/ur2/bytewords.py similarity index 100% rename from seedsigner/helpers/ur2/bytewords.py rename to src/seedsigner/helpers/ur2/bytewords.py diff --git a/seedsigner/helpers/ur2/cbor_lite.py b/src/seedsigner/helpers/ur2/cbor_lite.py similarity index 100% rename from seedsigner/helpers/ur2/cbor_lite.py rename to src/seedsigner/helpers/ur2/cbor_lite.py diff --git a/seedsigner/helpers/ur2/constants.py b/src/seedsigner/helpers/ur2/constants.py similarity index 100% rename from seedsigner/helpers/ur2/constants.py rename to src/seedsigner/helpers/ur2/constants.py diff --git a/seedsigner/helpers/ur2/crc32.py b/src/seedsigner/helpers/ur2/crc32.py similarity index 100% rename from seedsigner/helpers/ur2/crc32.py rename to src/seedsigner/helpers/ur2/crc32.py diff --git a/seedsigner/helpers/ur2/fountain_decoder.py b/src/seedsigner/helpers/ur2/fountain_decoder.py similarity index 100% rename from seedsigner/helpers/ur2/fountain_decoder.py rename to src/seedsigner/helpers/ur2/fountain_decoder.py diff --git a/seedsigner/helpers/ur2/fountain_encoder.py b/src/seedsigner/helpers/ur2/fountain_encoder.py similarity index 100% rename from seedsigner/helpers/ur2/fountain_encoder.py rename to src/seedsigner/helpers/ur2/fountain_encoder.py diff --git a/seedsigner/helpers/ur2/fountain_utils.py b/src/seedsigner/helpers/ur2/fountain_utils.py similarity index 100% rename from seedsigner/helpers/ur2/fountain_utils.py rename to src/seedsigner/helpers/ur2/fountain_utils.py diff --git a/seedsigner/helpers/ur2/random_sampler.py b/src/seedsigner/helpers/ur2/random_sampler.py similarity index 100% rename from seedsigner/helpers/ur2/random_sampler.py rename to src/seedsigner/helpers/ur2/random_sampler.py diff --git a/seedsigner/helpers/ur2/ur.py b/src/seedsigner/helpers/ur2/ur.py similarity index 100% rename from seedsigner/helpers/ur2/ur.py rename to src/seedsigner/helpers/ur2/ur.py diff --git a/seedsigner/helpers/ur2/ur_decoder.py b/src/seedsigner/helpers/ur2/ur_decoder.py similarity index 100% rename from seedsigner/helpers/ur2/ur_decoder.py rename to src/seedsigner/helpers/ur2/ur_decoder.py diff --git a/seedsigner/helpers/ur2/ur_encoder.py b/src/seedsigner/helpers/ur2/ur_encoder.py similarity index 100% rename from seedsigner/helpers/ur2/ur_encoder.py rename to src/seedsigner/helpers/ur2/ur_encoder.py diff --git a/seedsigner/helpers/ur2/utils.py b/src/seedsigner/helpers/ur2/utils.py similarity index 100% rename from seedsigner/helpers/ur2/utils.py rename to src/seedsigner/helpers/ur2/utils.py diff --git a/seedsigner/helpers/ur2/xoshiro256.py b/src/seedsigner/helpers/ur2/xoshiro256.py similarity index 100% rename from seedsigner/helpers/ur2/xoshiro256.py rename to src/seedsigner/helpers/ur2/xoshiro256.py diff --git a/src/seedsigner/models/__init__.py b/src/seedsigner/models/__init__.py new file mode 100644 index 00000000..9a9ef1aa --- /dev/null +++ b/src/seedsigner/models/__init__.py @@ -0,0 +1,6 @@ +from blue_vault_wallet import BlueVaultWallet +from generic_ur2_wallet import GenericUR2Wallet +from seed_storage import SeedStorage +from sparrow_multisig_wallet import SparrowMultiSigWallet +from specter_desktop_multisig_wallet import SpecterDesktopMultisigWallet +from specter_desktop_single_sig_wallet import SpecterDesktopSingleSigWallet diff --git a/seedsigner/models/blue_vault_wallet.py b/src/seedsigner/models/blue_vault_wallet.py similarity index 96% rename from seedsigner/models/blue_vault_wallet.py rename to src/seedsigner/models/blue_vault_wallet.py index 09c6ac71..97347675 100644 --- a/seedsigner/models/blue_vault_wallet.py +++ b/src/seedsigner/models/blue_vault_wallet.py @@ -1,5 +1,7 @@ -from wallet import Wallet -from qr import QR +from . import Wallet +from seedsigner.helpers import QR +from seedsigner.helpers.bcur import (bcur_decode, cbor_decode, bc32decode, + bc32encode, cbor_encode, bcur_encode) # External Dependencies from embit.bip39 import mnemonic_to_bytes @@ -12,7 +14,6 @@ from embit.networks import NETWORKS from embit import ec from io import BytesIO from binascii import unhexlify, hexlify, a2b_base64, b2a_base64 -from bcur import bcur_decode, cbor_decode, bc32decode, bc32encode, cbor_encode, bcur_encode import re class BlueVaultWallet(Wallet): diff --git a/seedsigner/models/generic_ur2_wallet.py b/src/seedsigner/models/generic_ur2_wallet.py similarity index 93% rename from seedsigner/models/generic_ur2_wallet.py rename to src/seedsigner/models/generic_ur2_wallet.py index 7dab9ecf..9896e9d3 100644 --- a/seedsigner/models/generic_ur2_wallet.py +++ b/src/seedsigner/models/generic_ur2_wallet.py @@ -1,9 +1,12 @@ -from wallet import Wallet -from buttons import Buttons, B -from camera_process import CameraProcess -from camera_process import CameraPoll -from view import View -from qr import QR +from . import Wallet + +from seedsigner.helpers import Buttons, B, CameraProcess, CameraPoll, QR +from seedsigner.helpers.bcur import bcur_decode, cbor_decode, bc32decode, bc32encode, cbor_encode, bcur_encode +from seedsigner.helpers.ur2.ur_decoder import URDecoder +from seedsigner.helpers.ur2.ur_encoder import UREncoder +from seedsigner.helpers.ur2.cbor_lite import CBOREncoder +from seedsigner.helpers.ur2.ur import UR +from seedsigner.views import View # External Dependencies import time @@ -17,11 +20,6 @@ from embit.networks import NETWORKS from embit import ec from io import BytesIO from binascii import unhexlify, hexlify, a2b_base64, b2a_base64 -from bcur import bcur_decode, cbor_decode, bc32decode, bc32encode, cbor_encode, bcur_encode -from ur2.ur_decoder import URDecoder -from ur2.ur_encoder import UREncoder -from ur2.cbor_lite import CBOREncoder -from ur2.ur import UR import re import textwrap diff --git a/seedsigner/models/seed_storage.py b/src/seedsigner/models/seed_storage.py similarity index 97% rename from seedsigner/models/seed_storage.py rename to src/seedsigner/models/seed_storage.py index 1a9a865a..ebb08eac 100644 --- a/seedsigner/models/seed_storage.py +++ b/src/seedsigner/models/seed_storage.py @@ -1,6 +1,5 @@ # External Dependencies -from embit.bip39 import mnemonic_to_bytes -from embit.bip39 import mnemonic_from_bytes +from embit.bip39 import mnemonic_to_bytes, mnemonic_from_bytes from embit import bip39 class SeedStorage: diff --git a/seedsigner/models/sparrow_multisig_wallet.py b/src/seedsigner/models/sparrow_multisig_wallet.py similarity index 91% rename from seedsigner/models/sparrow_multisig_wallet.py rename to src/seedsigner/models/sparrow_multisig_wallet.py index f5faaf65..7528fcf6 100644 --- a/seedsigner/models/sparrow_multisig_wallet.py +++ b/src/seedsigner/models/sparrow_multisig_wallet.py @@ -1,27 +1,22 @@ -from wallet import Wallet -from buttons import Buttons, B -from camera_process import CameraProcess -from camera_process import CameraPoll -from view import View -from qr import QR +from . import Wallet + +from seedsigner.helpers import Buttons, B, CameraProcess, CameraPoll, QR +from seedsigner.helpers.bcur import (bcur_decode, cbor_decode, bc32decode, + bc32encode, cbor_encode, bcur_encode) +from seedsigner.helpers.ur2.ur_decoder import URDecoder +from seedsigner.helpers.ur2.ur_encoder import UREncoder +from seedsigner.helpers.ur2.cbor_lite import CBOREncoder +from seedsigner.helpers.ur2.ur import UR +from seedsigner.views import View # External Dependencies import time -from embit.bip39 import mnemonic_to_bytes -from embit.bip39 import mnemonic_from_bytes -from embit import bip39 -from embit import script -from embit import bip32 -from embit import psbt +from embit import bip32, bip39, ec, script, psbt +from embit.bip39 import mnemonic_to_bytes, mnemonic_from_bytes from embit.networks import NETWORKS -from embit import ec +from embit import from io import BytesIO from binascii import unhexlify, hexlify, a2b_base64, b2a_base64 -from bcur import bcur_decode, cbor_decode, bc32decode, bc32encode, cbor_encode, bcur_encode -from ur2.ur_decoder import URDecoder -from ur2.ur_encoder import UREncoder -from ur2.cbor_lite import CBOREncoder -from ur2.ur import UR import re import textwrap diff --git a/seedsigner/models/specter_desktop_multisig_wallet.py b/src/seedsigner/models/specter_desktop_multisig_wallet.py similarity index 93% rename from seedsigner/models/specter_desktop_multisig_wallet.py rename to src/seedsigner/models/specter_desktop_multisig_wallet.py index 79be1743..a57a041c 100644 --- a/seedsigner/models/specter_desktop_multisig_wallet.py +++ b/src/seedsigner/models/specter_desktop_multisig_wallet.py @@ -1,15 +1,10 @@ -from wallet import Wallet -from qr import QR +from . import Wallet +from seedsigner.helpers import QR # External Dependencies -from embit.bip39 import mnemonic_to_bytes -from embit.bip39 import mnemonic_from_bytes -from embit import bip39 -from embit import script -from embit import bip32 -from embit import psbt +from embit import bip32, bip39, ec, psbt, script +from embit.bip39 import mnemonic_to_bytes, mnemonic_from_bytes from embit.networks import NETWORKS -from embit import ec from io import BytesIO from binascii import unhexlify, hexlify, a2b_base64, b2a_base64 import re diff --git a/seedsigner/models/specter_desktop_single_sig_wallet.py b/src/seedsigner/models/specter_desktop_single_sig_wallet.py similarity index 77% rename from seedsigner/models/specter_desktop_single_sig_wallet.py rename to src/seedsigner/models/specter_desktop_single_sig_wallet.py index b7feddcd..725ac9ec 100644 --- a/seedsigner/models/specter_desktop_single_sig_wallet.py +++ b/src/seedsigner/models/specter_desktop_single_sig_wallet.py @@ -1,15 +1,10 @@ -from specter_desktop_multisig_wallet import SpecterDesktopMultisigWallet -from wallet import Wallet +from . import SpecterDesktopMultisigWallet +from . import Wallet # External Dependencies -from embit.bip39 import mnemonic_to_bytes -from embit.bip39 import mnemonic_from_bytes -from embit import bip39 -from embit import script -from embit import bip32 -from embit import psbt +from embit import bip32, bip39, ec, psbt, script +from embit.bip39 import mnemonic_to_bytes, mnemonic_from_bytes from embit.networks import NETWORKS -from embit import ec from io import BytesIO from binascii import unhexlify, hexlify, a2b_base64, b2a_base64 import re diff --git a/seedsigner/models/wallet.py b/src/seedsigner/models/wallet.py similarity index 97% rename from seedsigner/models/wallet.py rename to src/seedsigner/models/wallet.py index acc24186..94d435b8 100644 --- a/seedsigner/models/wallet.py +++ b/src/seedsigner/models/wallet.py @@ -1,19 +1,12 @@ # Internal Dependencies -from buttons import Buttons, B -from camera_process import CameraProcess -from camera_process import CameraPoll -from view import View +from seedsigner.helpers import Buttons, B, CameraProcess, CameraPoll +from seedsigner.views import View # External Dependencies import time -from embit.bip39 import mnemonic_to_bytes -from embit.bip39 import mnemonic_from_bytes -from embit import bip39 -from embit import script -from embit import bip32 -from embit import psbt +from embit import bip32, bip39, ec, psbt, script +from embit.bip39 import mnemonic_to_bytes, mnemonic_from_bytes from embit.networks import NETWORKS -from embit import ec from io import BytesIO from binascii import unhexlify, hexlify, a2b_base64, b2a_base64 import textwrap diff --git a/seedsigner/settings.ini b/src/seedsigner/settings.ini similarity index 100% rename from seedsigner/settings.ini rename to src/seedsigner/settings.ini diff --git a/src/seedsigner/views/__init__.py b/src/seedsigner/views/__init__.py new file mode 100644 index 00000000..2b315cab --- /dev/null +++ b/src/seedsigner/views/__init__.py @@ -0,0 +1,6 @@ +from io_test_view import IOTestView +from menu_view import MenuView +from seed_tools_view import SeedToolsView +from settings_tools_view import SettingsToolsView +from signing_tools_view import SigningToolsView +from view import View diff --git a/seedsigner/views/io_test_view.py b/src/seedsigner/views/io_test_view.py similarity index 98% rename from seedsigner/views/io_test_view.py rename to src/seedsigner/views/io_test_view.py index 887792d1..c69f6a47 100644 --- a/seedsigner/views/io_test_view.py +++ b/src/seedsigner/views/io_test_view.py @@ -3,9 +3,9 @@ import threading from threading import Timer # Internal file class dependencies -from view import View -from buttons import B -from camera_process import CameraPoll +from . import View +from seedsigner.helpers import B, CameraPoll + class IOTestView(View): diff --git a/seedsigner/views/menu_view.py b/src/seedsigner/views/menu_view.py similarity index 99% rename from seedsigner/views/menu_view.py rename to src/seedsigner/views/menu_view.py index 9667cbe6..da210a22 100644 --- a/seedsigner/views/menu_view.py +++ b/src/seedsigner/views/menu_view.py @@ -1,8 +1,7 @@ # Internal file class dependencies -from view import View -from buttons import B -from path import Path -from seed_storage import SeedStorage +from . import View +from seedsigner.helpers import B, Path +from seedsigner.models import SeedStorage # External Dependencies import time diff --git a/seedsigner/views/seed_tools_view.py b/src/seedsigner/views/seed_tools_view.py similarity index 99% rename from seedsigner/views/seed_tools_view.py rename to src/seedsigner/views/seed_tools_view.py index 36f265a5..e6551090 100644 --- a/seedsigner/views/seed_tools_view.py +++ b/src/seedsigner/views/seed_tools_view.py @@ -1,12 +1,12 @@ # External Dependencies -from embit.bip39 import mnemonic_to_bytes -from embit.bip39 import mnemonic_from_bytes from embit import bip39 +from embit.bip39 import mnemonic_to_bytes, mnemonic_from_bytes import time # Internal file class dependencies -from view import View -from buttons import B +from . import View +from seedsigner.helpers import B + class SeedToolsView(View): diff --git a/seedsigner/views/settings_tools_view.py b/src/seedsigner/views/settings_tools_view.py similarity index 97% rename from seedsigner/views/settings_tools_view.py rename to src/seedsigner/views/settings_tools_view.py index 6d0f545a..110f798e 100644 --- a/seedsigner/views/settings_tools_view.py +++ b/src/seedsigner/views/settings_tools_view.py @@ -1,7 +1,7 @@ # SeedSigner file class dependencies -from view import View -from qr import QR -from buttons import B +from . import View +from seedsigner.helpers import B, QR + class SettingsToolsView(View): diff --git a/seedsigner/views/signing_tools_view.py b/src/seedsigner/views/signing_tools_view.py similarity index 98% rename from seedsigner/views/signing_tools_view.py rename to src/seedsigner/views/signing_tools_view.py index 5b925af3..61954d83 100644 --- a/seedsigner/views/signing_tools_view.py +++ b/src/seedsigner/views/signing_tools_view.py @@ -1,10 +1,11 @@ # Internal file class dependencies -from view import View -from buttons import Buttons, B +from . import View +from seedsigner.helpers import Buttons, B # External Dependencies import time + class SigningToolsView(View): def __init__(self, controller, seed_storage) -> None: diff --git a/seedsigner/views/view.py b/src/seedsigner/views/view.py similarity index 99% rename from seedsigner/views/view.py rename to src/seedsigner/views/view.py index 5f46cf70..4e84ad3e 100644 --- a/seedsigner/views/view.py +++ b/src/seedsigner/views/view.py @@ -1,11 +1,10 @@ # External Dependencies -from PIL import Image -from PIL import ImageDraw -from PIL import ImageFont -import ST7789 +from PIL import Image, ImageDraw, ImageFont import spidev as SPI from multiprocessing import Queue +from seedsigner.helpers import ST7789 + ### Generic View Class to Instatiate Display ### Static Class variables are used for display ### Designed to be inherited for other view classes, but not required From c8e3009382dd3e13a0a62df0892dcb0a229823e4 Mon Sep 17 00:00:00 2001 From: kdmukai Date: Wed, 23 Jun 2021 23:16:38 -0500 Subject: [PATCH 07/12] import fixes --- src/seedsigner/helpers/__init__.py | 10 +++++----- src/seedsigner/models/__init__.py | 12 ++++++------ src/seedsigner/views/__init__.py | 12 ++++++------ 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/seedsigner/helpers/__init__.py b/src/seedsigner/helpers/__init__.py index d7ac320b..f0219652 100644 --- a/src/seedsigner/helpers/__init__.py +++ b/src/seedsigner/helpers/__init__.py @@ -1,5 +1,5 @@ -from buttons import Buttons, B -from camera_process import CameraProcess, CameraPoll -from path import Path -from qr import QR -from ST7789 import ST7789 \ No newline at end of file +from . import buttons +from . import camera_process +from . import path +from . import qr +from . import ST7789 \ No newline at end of file diff --git a/src/seedsigner/models/__init__.py b/src/seedsigner/models/__init__.py index 9a9ef1aa..de1c0f47 100644 --- a/src/seedsigner/models/__init__.py +++ b/src/seedsigner/models/__init__.py @@ -1,6 +1,6 @@ -from blue_vault_wallet import BlueVaultWallet -from generic_ur2_wallet import GenericUR2Wallet -from seed_storage import SeedStorage -from sparrow_multisig_wallet import SparrowMultiSigWallet -from specter_desktop_multisig_wallet import SpecterDesktopMultisigWallet -from specter_desktop_single_sig_wallet import SpecterDesktopSingleSigWallet +from . import blue_vault_wallet +from . import generic_ur2_wallet +from . import seed_storage +from . import sparrow_multisig_wallet +from . import specter_desktop_multisig_wallet +from . import specter_desktop_single_sig_wallet diff --git a/src/seedsigner/views/__init__.py b/src/seedsigner/views/__init__.py index 2b315cab..79812da3 100644 --- a/src/seedsigner/views/__init__.py +++ b/src/seedsigner/views/__init__.py @@ -1,6 +1,6 @@ -from io_test_view import IOTestView -from menu_view import MenuView -from seed_tools_view import SeedToolsView -from settings_tools_view import SettingsToolsView -from signing_tools_view import SigningToolsView -from view import View +from . import io_test_view +from . import menu_view +from . import seed_tools_view +from . import settings_tools_view +from . import signing_tools_view +from . import view From b9f6ac5048a63f7b04d84e83c22fcf69f93cc39d Mon Sep 17 00:00:00 2001 From: kdmukai Date: Wed, 23 Jun 2021 23:29:44 -0500 Subject: [PATCH 08/12] import fixes --- src/seedsigner/helpers/__init__.py | 10 +++++----- src/seedsigner/models/__init__.py | 13 +++++++------ src/seedsigner/models/sparrow_multisig_wallet.py | 1 - src/seedsigner/views/__init__.py | 12 ++++++------ src/seedsigner/views/view.py | 2 +- src/{seedsigner => }/settings.ini | 0 6 files changed, 19 insertions(+), 19 deletions(-) rename src/{seedsigner => }/settings.ini (100%) diff --git a/src/seedsigner/helpers/__init__.py b/src/seedsigner/helpers/__init__.py index f0219652..242c25db 100644 --- a/src/seedsigner/helpers/__init__.py +++ b/src/seedsigner/helpers/__init__.py @@ -1,5 +1,5 @@ -from . import buttons -from . import camera_process -from . import path -from . import qr -from . import ST7789 \ No newline at end of file +from .buttons import * +from .camera_process import * +from .path import * +from .qr import * +from .ST7789 import * \ No newline at end of file diff --git a/src/seedsigner/models/__init__.py b/src/seedsigner/models/__init__.py index de1c0f47..98214750 100644 --- a/src/seedsigner/models/__init__.py +++ b/src/seedsigner/models/__init__.py @@ -1,6 +1,7 @@ -from . import blue_vault_wallet -from . import generic_ur2_wallet -from . import seed_storage -from . import sparrow_multisig_wallet -from . import specter_desktop_multisig_wallet -from . import specter_desktop_single_sig_wallet +from .blue_vault_wallet import * +from .generic_ur2_wallet import * +from .seed_storage import * +from .sparrow_multisig_wallet import * +from .specter_desktop_multisig_wallet import * +from .specter_desktop_single_sig_wallet import * +from .wallet import * \ No newline at end of file diff --git a/src/seedsigner/models/sparrow_multisig_wallet.py b/src/seedsigner/models/sparrow_multisig_wallet.py index 7528fcf6..d90e3fb7 100644 --- a/src/seedsigner/models/sparrow_multisig_wallet.py +++ b/src/seedsigner/models/sparrow_multisig_wallet.py @@ -14,7 +14,6 @@ import time from embit import bip32, bip39, ec, script, psbt from embit.bip39 import mnemonic_to_bytes, mnemonic_from_bytes from embit.networks import NETWORKS -from embit import from io import BytesIO from binascii import unhexlify, hexlify, a2b_base64, b2a_base64 import re diff --git a/src/seedsigner/views/__init__.py b/src/seedsigner/views/__init__.py index 79812da3..0e49c60d 100644 --- a/src/seedsigner/views/__init__.py +++ b/src/seedsigner/views/__init__.py @@ -1,6 +1,6 @@ -from . import io_test_view -from . import menu_view -from . import seed_tools_view -from . import settings_tools_view -from . import signing_tools_view -from . import view +from .io_test_view import * +from .menu_view import * +from .seed_tools_view import * +from .settings_tools_view import * +from .signing_tools_view import * +from .view import * diff --git a/src/seedsigner/views/view.py b/src/seedsigner/views/view.py index 4e84ad3e..04d07564 100644 --- a/src/seedsigner/views/view.py +++ b/src/seedsigner/views/view.py @@ -57,7 +57,7 @@ class View: # 240x240 display with hardware SPI: View.bus = 0 View.device = 0 - View.disp = ST7789.ST7789(SPI.SpiDev(View.bus, View.device),View.RST, View.DC, View.BL) + View.disp = ST7789(SPI.SpiDev(View.bus, View.device),View.RST, View.DC, View.BL) View.disp.Init() self.queue = Queue() diff --git a/src/seedsigner/settings.ini b/src/settings.ini similarity index 100% rename from src/seedsigner/settings.ini rename to src/settings.ini From f5446f9b45051c559576e675775970f22d788665 Mon Sep 17 00:00:00 2001 From: kdmukai Date: Wed, 23 Jun 2021 23:32:39 -0500 Subject: [PATCH 09/12] import fixes --- src/seedsigner/models/__init__.py | 2 +- src/seedsigner/views/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/seedsigner/models/__init__.py b/src/seedsigner/models/__init__.py index 98214750..9a39404b 100644 --- a/src/seedsigner/models/__init__.py +++ b/src/seedsigner/models/__init__.py @@ -1,7 +1,7 @@ +from .wallet import * # base class has to be first from .blue_vault_wallet import * from .generic_ur2_wallet import * from .seed_storage import * from .sparrow_multisig_wallet import * from .specter_desktop_multisig_wallet import * from .specter_desktop_single_sig_wallet import * -from .wallet import * \ No newline at end of file diff --git a/src/seedsigner/views/__init__.py b/src/seedsigner/views/__init__.py index 0e49c60d..47932cd0 100644 --- a/src/seedsigner/views/__init__.py +++ b/src/seedsigner/views/__init__.py @@ -1,6 +1,6 @@ +from .view import * # base class has to be first from .io_test_view import * from .menu_view import * from .seed_tools_view import * from .settings_tools_view import * from .signing_tools_view import * -from .view import * From 7a3dd55b9d3952b52bf2a9deeb4b3597b7d36bc9 Mon Sep 17 00:00:00 2001 From: kdmukai Date: Thu, 24 Jun 2021 00:12:22 -0500 Subject: [PATCH 10/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 60e8c0f2..60fabec3 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ Description=Seedsigner [Service] User=pi -WorkingDirectory=/home/pi/seedsigner/seedsigner +WorkingDirectory=/home/pi/seedsigner/src/ ExecStart=/usr/bin/python3 main.py Restart=always From a9e47a52ef0b636d91a9a0bb6258a17aea131323 Mon Sep 17 00:00:00 2001 From: newtonick Date: Thu, 24 Jun 2021 14:16:21 -0400 Subject: [PATCH 11/12] fix for invalid QR and screen wokiness during scan --- models/blue_vault_wallet.py | 2 +- models/sparrow_multisig_wallet.py | 6 ++++-- models/specter_desktop_multisig_wallet.py | 2 +- models/wallet.py | 6 +++++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/models/blue_vault_wallet.py b/models/blue_vault_wallet.py index 09c6ac71..25955487 100644 --- a/models/blue_vault_wallet.py +++ b/models/blue_vault_wallet.py @@ -114,7 +114,7 @@ class BlueVaultWallet(Wallet): images = [] start = 0 stop = self.qrsize - qr_cnt = (len(qrdata) // self.qrsize) + 1 + qr_cnt = ((len(data)-1) // self.qrsize) + 1 while cnt < qr_cnt: part = "UR:BYTES/" + str(cnt+1) + "OF" + str(qr_cnt) + "/" + qrhash + "/" + qrdata[start:stop] diff --git a/models/sparrow_multisig_wallet.py b/models/sparrow_multisig_wallet.py index f5faaf65..5f880938 100644 --- a/models/sparrow_multisig_wallet.py +++ b/models/sparrow_multisig_wallet.py @@ -137,13 +137,15 @@ class SparrowMultiSigWallet(Wallet): self.buttons.trigger_override() # if all frames have not all been captured, display progress to screen/display - if not self.capture_complete(): + if not self.capture_complete() and self.scan_display_working == 0: + self.scan_display_working = 1 View.draw.rectangle((0, 0, View.canvas_width, View.canvas_height), outline=0, fill=0) tw, th = View.draw.textsize("Collecting QR Codes:", font=View.IMPACT25) View.draw.text(((240 - tw) / 2, 15), "Collecting QR Codes:", fill="ORANGE", font=View.IMPACT25) tw, th = View.draw.textsize(str(round(self.percentage_complete * 100)) + "% Complete", font=View.IMPACT22) View.draw.text(((240 - tw) / 2, 125), str(round(self.percentage_complete * 100)) + "% Complete", fill="ORANGE", font=View.IMPACT22) View.DispShowImage() + self.scan_display_working = 0 elif self.scan_started_ind == 0: self.scan_started_ind = 1 @@ -186,7 +188,7 @@ class SparrowMultiSigWallet(Wallet): images = [] start = 0 stop = self.qrsize - qr_cnt = (len(data) // self.qrsize) + 1 + qr_cnt = ((len(data)-1) // self.qrsize) + 1 while cnt < qr_cnt: part = "p" + str(cnt+1) + "of" + str(qr_cnt) + " " + data[start:stop] diff --git a/models/specter_desktop_multisig_wallet.py b/models/specter_desktop_multisig_wallet.py index 79be1743..80061828 100644 --- a/models/specter_desktop_multisig_wallet.py +++ b/models/specter_desktop_multisig_wallet.py @@ -112,7 +112,7 @@ class SpecterDesktopMultisigWallet(Wallet): images = [] start = 0 stop = self.qrsize - qr_cnt = (len(data) // self.qrsize) + 1 + qr_cnt = ((len(data)-1) // self.qrsize) + 1 while cnt < qr_cnt: part = "p" + str(cnt+1) + "of" + str(qr_cnt) + " " + data[start:stop] diff --git a/models/wallet.py b/models/wallet.py index acc24186..c4680114 100644 --- a/models/wallet.py +++ b/models/wallet.py @@ -56,6 +56,7 @@ class Wallet: self.percentage_complete = 0 self.scan_started_ind = 0 + self.scan_display_working = 0 ### ### Required Methods to implement for Child Wallet Class @@ -115,6 +116,7 @@ class Wallet: self.controller.to_camera_queue.put(["stop"]) if self.qr_data[0] == "invalid": return "invalid" + time.sleep(0.5) # give time for camera loop to complete before returning data return "".join(self.qr_data) def process_camera_data(self): @@ -155,7 +157,8 @@ class Wallet: self.buttons.trigger_override() # if all frames have not all been captured, display progress to screen/display - if not self.capture_complete(): + if not self.capture_complete() and self.scan_display_working == 0: + self.scan_display_working = 1 View.draw.rectangle((0, 0, View.canvas_width, View.canvas_height), outline=0, fill=0) tw, th = View.draw.textsize("Collecting QR Codes:", font=View.IMPACT22) View.draw.text(((240 - tw) / 2, 15), "Collecting QR Codes:", fill="ORANGE", font=View.IMPACT22) @@ -168,6 +171,7 @@ class Wallet: tw, th = View.draw.textsize("Right to Exit", font=View.IMPACT18) View.draw.text(((240 - tw) / 2, 215), "Right to Exit", fill="ORANGE", font=View.IMPACT18) View.DispShowImage() + self.scan_display_working = 0 elif self.scan_started_ind == 0: self.scan_started_ind = 1 From 4137757e5ffeeaf11e786a9f62e8e37295b57277 Mon Sep 17 00:00:00 2001 From: SeedSigner <65379725+SeedSigner@users.noreply.github.com> Date: Fri, 25 Jun 2021 14:22:42 -0500 Subject: [PATCH 12/12] Update controller.py version tag version tag moved up to 0.4.0 --- controller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controller.py b/controller.py index be26ee3a..847dd43e 100644 --- a/controller.py +++ b/controller.py @@ -21,7 +21,7 @@ from generic_ur2_wallet import GenericUR2Wallet class Controller: - VERSION = "0.4.1a1" + VERSION = "0.4.1" def __init__(self) -> None: controller = self