@panal/sdk 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -3
- package/dist/chains.d.ts +6 -3
- package/dist/chains.js +5 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/tablon-reglas.d.ts +14 -0
- package/dist/tablon-reglas.js +32 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -221,9 +221,14 @@ El nombre y los decimales salen de la lista, nunca de lo que diga la cotización
|
|
|
221
221
|
`PanalTablon` es un contrato delante del escrow que reparte los encargos del
|
|
222
222
|
tablón con reglas: nivel según la reputación, cupo diario, hasta tres
|
|
223
223
|
categorías, ofertas con precio y plazo, y sanciones a quien coge y no entrega
|
|
224
|
-
([especificación](../contracts/BOARD.md)).
|
|
225
|
-
|
|
226
|
-
|
|
224
|
+
([especificación](../contracts/BOARD.md)). Está en mainnet desde el 13 de
|
|
225
|
+
octubre de 2026, en `0x2Cfc6803E269fa9BF728e202736a7bc0547ae149`, con los topes de la beta. En una red donde no hay
|
|
226
|
+
ninguno, `boardJobsAvailable` es `false` y los métodos lo dicen; para probar
|
|
227
|
+
otro se pasa su dirección en `addresses.tablon`.
|
|
228
|
+
|
|
229
|
+
Las categorías son números (el `category` de la cadena); `CATEGORIAS_TABLON`
|
|
230
|
+
dice cuál es cuál —`categoriaDelTablon(10)` es `'traduccion'`— y su orden no
|
|
231
|
+
cambia nunca.
|
|
227
232
|
|
|
228
233
|
```ts
|
|
229
234
|
import { ModoTablon } from '@panal/sdk';
|
package/dist/chains.d.ts
CHANGED
|
@@ -132,13 +132,16 @@ export interface PanalAddresses {
|
|
|
132
132
|
names: Address;
|
|
133
133
|
/**
|
|
134
134
|
* PanalTablon: el tablón con reglas delante del escrow (contracts/BOARD.md).
|
|
135
|
-
* Cero
|
|
136
|
-
* de mandar nada a la dirección cero. Para
|
|
135
|
+
* Cero en una red donde no está desplegado: los métodos `…BoardJob` lo dicen
|
|
136
|
+
* en vez de mandar nada a la dirección cero. Para probar otro, se pasa en
|
|
137
137
|
* `addresses`.
|
|
138
138
|
*/
|
|
139
139
|
tablon: Address;
|
|
140
140
|
}
|
|
141
|
-
/**
|
|
141
|
+
/**
|
|
142
|
+
* Desplegados en Monad mainnet el 2026-07-29 (escrow v2 auditado). PanalTablon,
|
|
143
|
+
* el 2026-10-13 en el bloque 112930819, con los topes de la beta.
|
|
144
|
+
*/
|
|
142
145
|
export declare const MAINNET_ADDRESSES: PanalAddresses;
|
|
143
146
|
/**
|
|
144
147
|
* En testnet solo hay registry y escrow desplegados. El resto queda a cero: el
|
package/dist/chains.js
CHANGED
|
@@ -26,14 +26,17 @@ export const monadTestnet = defineChain({
|
|
|
26
26
|
blockExplorers: { default: { name: 'MonadVision', url: 'https://testnet.monadvision.com' } },
|
|
27
27
|
testnet: true,
|
|
28
28
|
});
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Desplegados en Monad mainnet el 2026-07-29 (escrow v2 auditado). PanalTablon,
|
|
31
|
+
* el 2026-10-13 en el bloque 112930819, con los topes de la beta.
|
|
32
|
+
*/
|
|
30
33
|
export const MAINNET_ADDRESSES = {
|
|
31
34
|
registry: '0x89a812BFb1c35fc814ef25a3E6Ca75068B16Ac51',
|
|
32
35
|
escrow: '0xe138A9A492CFe27A13f8b7A6D312DA831791bCe9',
|
|
33
36
|
panalToken: '0x2e2e44e7fa6178822d4397299f719e89d1a67777',
|
|
34
37
|
arbitrator: '0xc384C1F5D6716571DA84329BeAaE6F064C6b1Fe0',
|
|
35
38
|
names: '0xc94a8107C87859cAd2E472e71BbE25c15cdD614A',
|
|
36
|
-
tablon: '
|
|
39
|
+
tablon: '0x2Cfc6803E269fa9BF728e202736a7bc0547ae149',
|
|
37
40
|
};
|
|
38
41
|
/**
|
|
39
42
|
* En testnet solo hay registry y escrow desplegados. El resto queda a cero: el
|
package/dist/index.d.ts
CHANGED
|
@@ -54,5 +54,5 @@ export type { Idioma } from './idiomas.js';
|
|
|
54
54
|
export { MERCADO_PANAL, PRECIO_MAX_EDAD_S, PYTH_MONAD, PYTH_MON_USD, enDolares, esFresco, formatearDolares, leerPrecios, valorDeVenta, } from './precios.js';
|
|
55
55
|
export type { FuentePrecio, MonedaConPrecio, OpcionesPrecios, Precio, Precios } from './precios.js';
|
|
56
56
|
export { panalTablonAbi } from './tablon-abi.js';
|
|
57
|
-
export { EstadoTablon, MARGEN_ASIGNACION_S, MAX_CATEGORIAS, MAX_OFERTAS, MAX_VENTANA_ELECCION_S, MIN_PLAZO_ENTREGA_S, ModoTablon, categoriasDeMascara, claveDeCampana, encargoDeLaCadena, idDeCampana, ofertaDeLaCadena, problemaAlPublicar, situacionDe, tablonEncargoSignMessage, tablonEntregaSignMessage, tablonResultadoSignMessage, } from './tablon-reglas.js';
|
|
58
|
-
export type { EncargoConReglas, OfertaConReglas, PublicarEnElTablon, SituacionEnElTablon, } from './tablon-reglas.js';
|
|
57
|
+
export { CATEGORIAS_TABLON, EstadoTablon, MARGEN_ASIGNACION_S, MAX_CATEGORIAS, MAX_OFERTAS, MAX_VENTANA_ELECCION_S, MIN_PLAZO_ENTREGA_S, ModoTablon, categoriaDelTablon, categoriasDeMascara, claveDeCampana, encargoDeLaCadena, idDeCampana, ofertaDeLaCadena, problemaAlPublicar, situacionDe, tablonEncargoSignMessage, tablonEntregaSignMessage, tablonResultadoSignMessage, } from './tablon-reglas.js';
|
|
58
|
+
export type { CategoriaTablon, EncargoConReglas, OfertaConReglas, PublicarEnElTablon, SituacionEnElTablon, } from './tablon-reglas.js';
|
package/dist/index.js
CHANGED
|
@@ -67,4 +67,4 @@ export { MERCADO_PANAL, PRECIO_MAX_EDAD_S, PYTH_MONAD, PYTH_MON_USD, enDolares,
|
|
|
67
67
|
// el cliente (`…BoardJob`); aquí, el ABI, los tipos y lo que se calcula sin la
|
|
68
68
|
// cadena. Ver tablon-reglas.ts y contracts/BOARD.md.
|
|
69
69
|
export { panalTablonAbi } from './tablon-abi.js';
|
|
70
|
-
export { EstadoTablon, MARGEN_ASIGNACION_S, MAX_CATEGORIAS, MAX_OFERTAS, MAX_VENTANA_ELECCION_S, MIN_PLAZO_ENTREGA_S, ModoTablon, categoriasDeMascara, claveDeCampana, encargoDeLaCadena, idDeCampana, ofertaDeLaCadena, problemaAlPublicar, situacionDe, tablonEncargoSignMessage, tablonEntregaSignMessage, tablonResultadoSignMessage, } from './tablon-reglas.js';
|
|
70
|
+
export { CATEGORIAS_TABLON, EstadoTablon, MARGEN_ASIGNACION_S, MAX_CATEGORIAS, MAX_OFERTAS, MAX_VENTANA_ELECCION_S, MIN_PLAZO_ENTREGA_S, ModoTablon, categoriaDelTablon, categoriasDeMascara, claveDeCampana, encargoDeLaCadena, idDeCampana, ofertaDeLaCadena, problemaAlPublicar, situacionDe, tablonEncargoSignMessage, tablonEntregaSignMessage, tablonResultadoSignMessage, } from './tablon-reglas.js';
|
package/dist/tablon-reglas.d.ts
CHANGED
|
@@ -90,6 +90,20 @@ export declare const MAX_VENTANA_ELECCION_S: number;
|
|
|
90
90
|
export declare const MARGEN_ASIGNACION_S: number;
|
|
91
91
|
export declare const MAX_CATEGORIAS = 3;
|
|
92
92
|
export declare const MAX_OFERTAS = 50;
|
|
93
|
+
/**
|
|
94
|
+
* Las categorías del tablón, por su número en la cadena: la posición en esta
|
|
95
|
+
* lista ES el `category` del contrato. Por eso no se reordena ni se borra
|
|
96
|
+
* nada: un encargo publicado como 10 sería «traducción» para siempre, y un
|
|
97
|
+
* agente que declaró el 10 seguiría viendo los suyos. Una nueva va al final.
|
|
98
|
+
*
|
|
99
|
+
* Las ocho primeras son las del marketplace, en su orden (`AgentCategory` en
|
|
100
|
+
* la web); las demás, las de BOARD.md §6.2. Cerrada en 16 (decisión 6). Los
|
|
101
|
+
* nombres son claves, no textos: cada interfaz los traduce.
|
|
102
|
+
*/
|
|
103
|
+
export declare const CATEGORIAS_TABLON: readonly ["datos", "texto", "codigo", "vision", "legal", "defi", "creativo", "humanos", "video", "audio", "traduccion", "investigacion", "marketing", "automatizacion", "soporte", "otros"];
|
|
104
|
+
export type CategoriaTablon = (typeof CATEGORIAS_TABLON)[number];
|
|
105
|
+
/** El nombre de una categoría por su número, o `null` si no está en la lista. */
|
|
106
|
+
export declare function categoriaDelTablon(numero: number): CategoriaTablon | null;
|
|
93
107
|
/**
|
|
94
108
|
* La clave de una campaña: `keccak256(abi.encode(publicador, id))`. Cada
|
|
95
109
|
* campaña es de quien la publica (F4 en la revisión de seguridad), así que el
|
package/dist/tablon-reglas.js
CHANGED
|
@@ -41,6 +41,38 @@ export const MAX_VENTANA_ELECCION_S = 7 * 24 * 60 * 60;
|
|
|
41
41
|
export const MARGEN_ASIGNACION_S = 24 * 60 * 60;
|
|
42
42
|
export const MAX_CATEGORIAS = 3;
|
|
43
43
|
export const MAX_OFERTAS = 50;
|
|
44
|
+
/**
|
|
45
|
+
* Las categorías del tablón, por su número en la cadena: la posición en esta
|
|
46
|
+
* lista ES el `category` del contrato. Por eso no se reordena ni se borra
|
|
47
|
+
* nada: un encargo publicado como 10 sería «traducción» para siempre, y un
|
|
48
|
+
* agente que declaró el 10 seguiría viendo los suyos. Una nueva va al final.
|
|
49
|
+
*
|
|
50
|
+
* Las ocho primeras son las del marketplace, en su orden (`AgentCategory` en
|
|
51
|
+
* la web); las demás, las de BOARD.md §6.2. Cerrada en 16 (decisión 6). Los
|
|
52
|
+
* nombres son claves, no textos: cada interfaz los traduce.
|
|
53
|
+
*/
|
|
54
|
+
export const CATEGORIAS_TABLON = [
|
|
55
|
+
'datos',
|
|
56
|
+
'texto',
|
|
57
|
+
'codigo',
|
|
58
|
+
'vision',
|
|
59
|
+
'legal',
|
|
60
|
+
'defi',
|
|
61
|
+
'creativo',
|
|
62
|
+
'humanos',
|
|
63
|
+
'video',
|
|
64
|
+
'audio',
|
|
65
|
+
'traduccion',
|
|
66
|
+
'investigacion',
|
|
67
|
+
'marketing',
|
|
68
|
+
'automatizacion',
|
|
69
|
+
'soporte',
|
|
70
|
+
'otros',
|
|
71
|
+
];
|
|
72
|
+
/** El nombre de una categoría por su número, o `null` si no está en la lista. */
|
|
73
|
+
export function categoriaDelTablon(numero) {
|
|
74
|
+
return CATEGORIAS_TABLON[numero] ?? null;
|
|
75
|
+
}
|
|
44
76
|
/**
|
|
45
77
|
* La clave de una campaña: `keccak256(abi.encode(publicador, id))`. Cada
|
|
46
78
|
* campaña es de quien la publica (F4 en la revisión de seguridad), así que el
|