@stake-dao/reader 0.5.3 → 0.5.4
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/dist/esm/abis/lockersMulticall.js +27 -4
- package/dist/esm/abis/lockersMulticall.js.map +1 -1
- package/dist/esm/bytecodes/votemarket/batchYbUserVotes.js +39 -0
- package/dist/esm/bytecodes/votemarket/batchYbUserVotes.js.map +1 -0
- package/dist/esm/bytecodes/votemarket/batchYbVotes.js +13 -0
- package/dist/esm/bytecodes/votemarket/batchYbVotes.js.map +1 -0
- package/dist/esm/index.js +5 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lockers/fetch/parse.js +1 -0
- package/dist/esm/lockers/fetch/parse.js.map +1 -1
- package/dist/esm/lockers/fetch/protocols/balancer.js +3 -0
- package/dist/esm/lockers/fetch/protocols/balancer.js.map +1 -1
- package/dist/esm/prices.js +4 -0
- package/dist/esm/prices.js.map +1 -1
- package/dist/esm/votemarket/fetchClaimableData.js +1 -1
- package/dist/esm/votemarket/fetchEpochVotes.js +13 -4
- package/dist/esm/votemarket/fetchEpochVotes.js.map +1 -1
- package/dist/esm/votemarket/generateProofs/config.js +6 -0
- package/dist/esm/votemarket/generateProofs/config.js.map +1 -1
- package/dist/esm/votemarket/generateProofs/getGaugeProof.js +5 -0
- package/dist/esm/votemarket/generateProofs/getGaugeProof.js.map +1 -1
- package/dist/esm/votemarket/generateProofs/getUserProof.js +13 -2
- package/dist/esm/votemarket/generateProofs/getUserProof.js.map +1 -1
- package/dist/esm/votemarket/yb/fetchYbUserVotes.js +42 -0
- package/dist/esm/votemarket/yb/fetchYbUserVotes.js.map +1 -0
- package/dist/types/abis/lockersMulticall.d.ts.map +1 -1
- package/dist/types/bytecodes/votemarket/batchYbUserVotes.d.ts +4 -0
- package/dist/types/bytecodes/votemarket/batchYbUserVotes.d.ts.map +1 -0
- package/dist/types/bytecodes/votemarket/batchYbVotes.d.ts +4 -0
- package/dist/types/bytecodes/votemarket/batchYbVotes.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lockers/fetch/parse.d.ts +1 -0
- package/dist/types/lockers/fetch/parse.d.ts.map +1 -1
- package/dist/types/lockers/fetch/protocols/balancer.d.ts.map +1 -1
- package/dist/types/prices.d.ts.map +1 -1
- package/dist/types/votemarket/fetchEpochVotes.d.ts.map +1 -1
- package/dist/types/votemarket/generateProofs/config.d.ts +6 -0
- package/dist/types/votemarket/generateProofs/config.d.ts.map +1 -1
- package/dist/types/votemarket/generateProofs/getGaugeProof.d.ts.map +1 -1
- package/dist/types/votemarket/generateProofs/getUserProof.d.ts.map +1 -1
- package/dist/types/votemarket/yb/fetchYbUserVotes.d.ts +16 -0
- package/dist/types/votemarket/yb/fetchYbUserVotes.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/abis/lockersMulticall.ts +27 -4
- package/src/bytecodes/votemarket/batchYbUserVotes.ts +41 -0
- package/src/bytecodes/votemarket/batchYbVotes.ts +15 -0
- package/src/index.ts +6 -1
- package/src/lockers/fetch/parse.ts +2 -0
- package/src/lockers/fetch/protocols/balancer.ts +3 -0
- package/src/prices.ts +4 -0
- package/src/votemarket/fetchClaimableData.ts +1 -1
- package/src/votemarket/fetchEpochVotes.ts +14 -4
- package/src/votemarket/generateProofs/config.ts +6 -0
- package/src/votemarket/generateProofs/getGaugeProof.ts +8 -0
- package/src/votemarket/generateProofs/getUserProof.ts +15 -2
- package/src/votemarket/yb/fetchYbUserVotes.ts +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchYbUserVotes.js","sourceRoot":"","sources":["../../../../src/votemarket/yb/fetchYbUserVotes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,gBAAgB,MAAM,gDAAgD,CAAA;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAavD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAW,EAAE,IAAY,EAA2B,EAAE;IAC3F,MAAM,KAAK,GAAG;QACZ,cAAc,CACZ,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAE,EACtC,mBAAmB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAE,CAAQ,EAAE;YACtF,IAAI;YACJ,SAAS,CAAC,iBAAkB,CAAC,CAAC,CAAE;YAChC,SAAS,CAAC,IAAK,CAAC,CAAC,CAAE;SACpB,CAAC,CACH;KACF,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;QAClC,GAAG;QACH,KAAK;QACL,aAAa,EAAE,gBAAgB,CAAC,UAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,0DAA0D,OAAO,CAAC,EAAE,UAAU,GAAG,EAAE;KAC9F,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEvC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;SAC5B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9B,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;QACrC,MAAM,EAAE,WAAW,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACtE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;KACnB,CAAC,CAAC,CAAA;IAEL,MAAM,oBAAoB,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;IAClG,MAAM,eAAe,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAElF,OAAO;QACL,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;QACrC,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC;QACjD,oBAAoB,EAAE,oBAAoB,GAAG,GAAG;QAChD,KAAK;KACN,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockersMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/lockersMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"lockersMulticall.d.ts","sourceRoot":"","sources":["../../../src/abis/lockersMulticall.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAibxB,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batchYbUserVotes.d.ts","sourceRoot":"","sources":["../../../../src/bytecodes/votemarket/batchYbUserVotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,QAAA,MAAM,gBAAgB,EAAE,aAoCvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batchYbVotes.d.ts","sourceRoot":"","sources":["../../../../src/bytecodes/votemarket/batchYbVotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,QAAA,MAAM,YAAY,EAAE,aAUnB,CAAA;AAED,eAAe,YAAY,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { getLlamaTokenPrefix, getPricesFromLlama } from './prices.js';
|
|
2
|
+
export { getGeckoTerminalTokenPrefix, getPricesFromGeckoTerminal } from './prices.js';
|
|
3
|
+
export { getPrices, findPrice, type Price } from './prices.js';
|
|
2
4
|
export * from './sdt.js';
|
|
3
5
|
export * from './tokens.js';
|
|
4
6
|
export { rpcGetLastBlockTimetstamp, rpcCall, batchJsonRpc, ethGetTxsReceipts } from './utils.js';
|
|
@@ -45,6 +47,7 @@ export { fetchSnapshotUserData, getStakeDaoSnapshotSpace } from './votemarket/cu
|
|
|
45
47
|
export { fetchBalancerUserVotes } from './votemarket/balancer/fetchBalancerUserVotes.js';
|
|
46
48
|
export { fetchFxnUserVotes } from './votemarket/fxn/fetchFxnUserVotes.js';
|
|
47
49
|
export { fetchPendleUserVotes } from './votemarket/pendle/fetchPendleUserVotes.js';
|
|
50
|
+
export { fetchYbUserVotes } from './votemarket/yb/fetchYbUserVotes.js';
|
|
48
51
|
export { fetchEpochsVotes } from './votemarket/fetchEpochVotes.js';
|
|
49
52
|
export { fetchClaimableData } from './votemarket/fetchClaimableData.js';
|
|
50
53
|
export { fetchNeededCampaignUpdate } from './votemarket/fetchNeededCampaignUpdate.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/parse.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,eAAO,MAAM,oBAAoB,WAAY,MAAM,eAAe,GAAG;;;;;CAYpE,CAAA;AAED,eAAO,MAAM,QAAQ,WAAY,MAAM,UAAU,GAAG,WAOnD,CAAA;AAED,eAAO,MAAM,cAAc,WAAY,MAAM,UAAU,GAAG,QA4BzD,CAAA;AAED,eAAO,MAAM,eAAe,kBAAmB,GAAG,mBAAmB,MAAM,yBAAyB,MAAM,WAuBzG,CAAA;AAED,eAAO,MAAM,eAAe,6CAkB3B,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,CAAA;QACjB,aAAa,EAAE,MAAM,EAAE,CAAA;KACxB,CAAA;IACD,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,GAAG,CAAA;IACX,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE;QACN,UAAU,EAAE;YAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;QACxC,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,MAAM,EAAE,GAAG,EAAE,CAAA;CACd;AAED,eAAO,MAAM,KAAK,oCAA2C,YAAY,
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/parse.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,eAAO,MAAM,oBAAoB,WAAY,MAAM,eAAe,GAAG;;;;;CAYpE,CAAA;AAED,eAAO,MAAM,QAAQ,WAAY,MAAM,UAAU,GAAG,WAOnD,CAAA;AAED,eAAO,MAAM,cAAc,WAAY,MAAM,UAAU,GAAG,QA4BzD,CAAA;AAED,eAAO,MAAM,eAAe,kBAAmB,GAAG,mBAAmB,MAAM,yBAAyB,MAAM,WAuBzG,CAAA;AAED,eAAO,MAAM,eAAe,6CAkB3B,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,SAAS,EAAE,MAAM,CAAA;QACjB,aAAa,EAAE,MAAM,EAAE,CAAA;KACxB,CAAA;IACD,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,GAAG,CAAA;IACX,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE;QACN,UAAU,EAAE;YAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;QACxC,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,MAAM,EAAE,GAAG,EAAE,CAAA;CACd;AAED,eAAO,MAAM,KAAK,oCAA2C,YAAY,iBAoHxE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balancer.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/fetch/protocols/balancer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,MAAM,EAAE,MAkEpB,CAAA;AAED,QAAA,MAAM,cAAc,iCAAwC;IAAE,QAAQ,MAAC;IAAC,MAAM,MAAC;IAAC,MAAM,MAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"balancer.d.ts","sourceRoot":"","sources":["../../../../../src/lockers/fetch/protocols/balancer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,MAAM,EAAE,MAkEpB,CAAA;AAED,QAAA,MAAM,cAAc,iCAAwC;IAAE,QAAQ,MAAC;IAAC,MAAM,MAAC;IAAC,MAAM,MAAA;CAAE,iBAuHvF,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../src/prices.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,mBAAmB,wBAAkB,
|
|
1
|
+
{"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../src/prices.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,mBAAmB,wBAAkB,MA6BjD,CAAA;AAED,eAAO,MAAM,kBAAkB,WAAkB,GAAG,EAAE,wCAAmC,GAAG,KAAG,OAAO,CAAC,KAAK,EAAE,CAgC7G,CAAA;AAED,eAAO,MAAM,kBAAkB,YAAmB,MAAM,iBAKvD,CAAA;AAED,eAAO,MAAM,2BAA2B,wBAAkB,MA6BzD,CAAA;AAED,eAAO,MAAM,0BAA0B,WAC7B,GAAG,EAAE,wCAEO,GAAG,KACtB,OAAO,CAAC,KAAK,EAAE,CA4BjB,CAAA;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,SAAS,WAAkB,YAAY,EAAE,uBAAgB,OAAO,CAAC,KAAK,EAAE,CAmBpF,CAAA;AAED,eAAO,MAAM,WAAW,eAAsB,KAAK,EAAE,UAAU,YAAY,EAAE,uBAAgB,OAAO,CAAC,KAAK,EAAE,CAO3G,CAAA;AAED,eAAO,MAAM,SAAS,WAAY,KAAK,EAAE,gBAAgB,MAAM,KAAG,MAEjE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchEpochVotes.d.ts","sourceRoot":"","sources":["../../../src/votemarket/fetchEpochVotes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetchEpochVotes.d.ts","sourceRoot":"","sources":["../../../src/votemarket/fetchEpochVotes.ts"],"names":[],"mappings":"AAYA,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAe,IAAI,mBAAmB,MAAM,QAAQ,MAAM,UAAU,MAAM,EAAE;;;IAgExG,CAAA"}
|
|
@@ -20,12 +20,18 @@ export declare const GaugeControllerConstants: {
|
|
|
20
20
|
lastUserVote: number;
|
|
21
21
|
voteUserSlope: number;
|
|
22
22
|
};
|
|
23
|
+
yb: {
|
|
24
|
+
pointWeights: number;
|
|
25
|
+
lastUserVote: number;
|
|
26
|
+
voteUserSlope: number;
|
|
27
|
+
};
|
|
23
28
|
};
|
|
24
29
|
GAUGE_CONTROLLER: {
|
|
25
30
|
curve: string;
|
|
26
31
|
balancer: string;
|
|
27
32
|
frax: string;
|
|
28
33
|
fxn: string;
|
|
34
|
+
yb: string;
|
|
29
35
|
};
|
|
30
36
|
};
|
|
31
37
|
export declare const BLOCK_HEADER: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/generateProofs/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/generateProofs/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCpC,CAAA;AAED,eAAO,MAAM,YAAY,UAsBxB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGaugeProof.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/generateProofs/getGaugeProof.ts"],"names":[],"mappings":"AAIA,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;
|
|
1
|
+
{"version":3,"file":"getGaugeProof.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/generateProofs/getGaugeProof.ts"],"names":[],"mappings":"AAIA,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AA+BD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,KAAK,MAAM,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAuC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserProof.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/generateProofs/getUserProof.ts"],"names":[],"mappings":"AAIA,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAwBD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,KAAK,MAAM,EAAE,EAC3B,IAAI,EAAE,KAAK,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"getUserProof.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/generateProofs/getUserProof.ts"],"names":[],"mappings":"AAIA,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAwBD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,KAAK,MAAM,EAAE,EAC3B,IAAI,EAAE,KAAK,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkD3B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Vote = {
|
|
2
|
+
gauge: string;
|
|
3
|
+
slope: string;
|
|
4
|
+
relativeWeight: number;
|
|
5
|
+
weight: number;
|
|
6
|
+
start: number;
|
|
7
|
+
end: number;
|
|
8
|
+
};
|
|
9
|
+
export type GaugesUserData = {
|
|
10
|
+
veBalance: string;
|
|
11
|
+
unusedVeBalance: string;
|
|
12
|
+
unusedRelativeWeight: number;
|
|
13
|
+
votes: Vote[];
|
|
14
|
+
};
|
|
15
|
+
export declare const fetchYbUserVotes: (rpc: string, user: string) => Promise<GaugesUserData>;
|
|
16
|
+
//# sourceMappingURL=fetchYbUserVotes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchYbUserVotes.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/yb/fetchYbUserVotes.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAA;AAExH,eAAO,MAAM,gBAAgB,QAAe,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,cAAc,CA0CxF,CAAA"}
|
package/package.json
CHANGED
|
@@ -244,7 +244,11 @@ const lockersMulticallAbi = (lockerId = '', chainId = 1) => [
|
|
|
244
244
|
components: [
|
|
245
245
|
{ internalType: 'address', name: 'sender', type: 'address' },
|
|
246
246
|
{ internalType: 'bool', name: 'fromInternalBalance', type: 'bool' },
|
|
247
|
-
{
|
|
247
|
+
{
|
|
248
|
+
internalType: 'address payable',
|
|
249
|
+
name: 'recipient',
|
|
250
|
+
type: 'address',
|
|
251
|
+
},
|
|
248
252
|
{ internalType: 'bool', name: 'toInternalBalance', type: 'bool' },
|
|
249
253
|
],
|
|
250
254
|
internalType: 'struct IVault.FundManagement',
|
|
@@ -339,7 +343,11 @@ const lockersMulticallAbi = (lockerId = '', chainId = 1) => [
|
|
|
339
343
|
{ internalType: 'address', name: 'tokenOut', type: 'address' },
|
|
340
344
|
{ internalType: 'uint256', name: 'amountIn', type: 'uint256' },
|
|
341
345
|
{ internalType: 'uint24', name: 'fee', type: 'uint24' },
|
|
342
|
-
{
|
|
346
|
+
{
|
|
347
|
+
internalType: 'uint160',
|
|
348
|
+
name: 'sqrtPriceLimitX96',
|
|
349
|
+
type: 'uint160',
|
|
350
|
+
},
|
|
343
351
|
],
|
|
344
352
|
internalType: 'struct IQuoterV2.QuoteExactInputSingleParams',
|
|
345
353
|
name: 'params',
|
|
@@ -350,7 +358,11 @@ const lockersMulticallAbi = (lockerId = '', chainId = 1) => [
|
|
|
350
358
|
outputs: [
|
|
351
359
|
{ internalType: 'uint256', name: 'amountOut', type: 'uint256' },
|
|
352
360
|
{ internalType: 'uint160', name: 'sqrtPriceX96After', type: 'uint160' },
|
|
353
|
-
{
|
|
361
|
+
{
|
|
362
|
+
internalType: 'uint32',
|
|
363
|
+
name: 'initializedTicksCrossed',
|
|
364
|
+
type: 'uint32',
|
|
365
|
+
},
|
|
354
366
|
{ internalType: 'uint256', name: 'gasEstimate', type: 'uint256' },
|
|
355
367
|
],
|
|
356
368
|
stateMutability: 'view',
|
|
@@ -387,7 +399,11 @@ const lockersMulticallAbi = (lockerId = '', chainId = 1) => [
|
|
|
387
399
|
outputs: [
|
|
388
400
|
{
|
|
389
401
|
components: [
|
|
390
|
-
{
|
|
402
|
+
{
|
|
403
|
+
internalType: 'address[]',
|
|
404
|
+
name: 'receivers',
|
|
405
|
+
type: 'address[]',
|
|
406
|
+
},
|
|
391
407
|
{ internalType: 'uint256[]', name: 'fees', type: 'uint256[]' },
|
|
392
408
|
],
|
|
393
409
|
internalType: 'struct AccumulatorV2.Split',
|
|
@@ -408,6 +424,13 @@ const lockersMulticallAbi = (lockerId = '', chainId = 1) => [
|
|
|
408
424
|
stateMutability: 'view',
|
|
409
425
|
type: 'function',
|
|
410
426
|
},
|
|
427
|
+
{
|
|
428
|
+
inputs: [{ name: '_user', type: 'address' }],
|
|
429
|
+
name: 'received_balance',
|
|
430
|
+
outputs: [{ name: '', type: 'uint256' }],
|
|
431
|
+
stateMutability: 'view',
|
|
432
|
+
type: 'function',
|
|
433
|
+
},
|
|
411
434
|
]
|
|
412
435
|
|
|
413
436
|
export default lockersMulticallAbi
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { BatchMetaData } from '../types.js'
|
|
2
|
+
|
|
3
|
+
const batchYbUserVotes: BatchMetaData = {
|
|
4
|
+
bytecode: {
|
|
5
|
+
1: '0x608060405234801561000f575f5ffd5b506040516109dd3803806109dd833981810160405281019061003191906105e8565b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff1663e93841d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a3919061066b565b90506100ad610531565b8373ffffffffffffffffffffffffffffffffffffffff16639ab24eb0876040518263ffffffff1660e01b81526004016100e691906106a5565b602060405180830381865afa158015610101573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610125919061066b565b815f0181815250505f5f90505f5f90505b838110156103be575f8573ffffffffffffffffffffffffffffffffffffffff1663b0539187836040518263ffffffff1660e01b815260040161017891906106cd565b602060405180830381865afa158015610193573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b791906106e6565b90506101c161054a565b8673ffffffffffffffffffffffffffffffffffffffff16630f467f988b846040518363ffffffff1660e01b81526004016101fc929190610711565b608060405180830381865afa158015610217573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023b9190610738565b9091508360200184604001856080018381525083815250838152505050505f816040015111156103af5781815f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508673ffffffffffffffffffffffffffffffffffffffff16637e418fa08b846040518363ffffffff1660e01b81526004016102d7929190610711565b602060405180830381865afa1580156102f2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610316919061066b565b816060018181525050805f5f8681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015560608201518160030155608082015181600401559050506001846103ac91906107c9565b93505b50508080600101915050610136565b506103ce8161040460201b60201c565b82602001819052505f826040516020016103e89190610962565b6040516020818303038152906040529050602081018059038082f35b60608167ffffffffffffffff8111156104205761041f610982565b5b60405190808252806020026020018201604052801561045957816020015b61044661054a565b81526020019060019003908161043e5790505b5090505f5f90505b8281101561052b575f5f8281526020019081526020015f206040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815260200160038201548152602001600482015481525050828281518110610513576105126109af565b5b60200260200101819052508080600101915050610461565b50919050565b60405180604001604052805f8152602001606081525090565b6040518060a001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81526020015f81525090565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105b78261058e565b9050919050565b6105c7816105ad565b81146105d1575f5ffd5b50565b5f815190506105e2816105be565b92915050565b5f5f5f606084860312156105ff576105fe61058a565b5b5f61060c868287016105d4565b935050602061061d868287016105d4565b925050604061062e868287016105d4565b9150509250925092565b5f819050919050565b61064a81610638565b8114610654575f5ffd5b50565b5f8151905061066581610641565b92915050565b5f602082840312156106805761067f61058a565b5b5f61068d84828501610657565b91505092915050565b61069f816105ad565b82525050565b5f6020820190506106b85f830184610696565b92915050565b6106c781610638565b82525050565b5f6020820190506106e05f8301846106be565b92915050565b5f602082840312156106fb576106fa61058a565b5b5f610708848285016105d4565b91505092915050565b5f6040820190506107245f830185610696565b6107316020830184610696565b9392505050565b5f5f5f5f608085870312156107505761074f61058a565b5b5f61075d87828801610657565b945050602061076e87828801610657565b935050604061077f87828801610657565b925050606061079087828801610657565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107d382610638565b91506107de83610638565b92508282019050808211156107f6576107f561079c565b5b92915050565b61080581610638565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61083d816105ad565b82525050565b60a082015f8201516108575f850182610834565b50602082015161086a60208501826107fc565b50604082015161087d60408501826107fc565b50606082015161089060608501826107fc565b5060808201516108a360808501826107fc565b50505050565b5f6108b48383610843565b60a08301905092915050565b5f602082019050919050565b5f6108d68261080b565b6108e08185610815565b93506108eb83610825565b805f5b8381101561091b57815161090288826108a9565b975061090d836108c0565b9250506001810190506108ee565b5085935050505092915050565b5f604083015f83015161093d5f8601826107fc565b506020830151848203602086015261095582826108cc565b9150508091505092915050565b5f6020820190508181035f83015261097a8184610928565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfe',
|
|
6
|
+
},
|
|
7
|
+
inputType: {
|
|
8
|
+
1: ['address user', 'address gaugeController', 'address veToken'],
|
|
9
|
+
},
|
|
10
|
+
outputTypeHr: {
|
|
11
|
+
1: [
|
|
12
|
+
'ReturnData memory returnData',
|
|
13
|
+
'struct ReturnData { uint256 veBalance; Vote[] votes; }',
|
|
14
|
+
'struct Vote { address gauge; uint256 slope; uint256 power; uint256 start; uint256 end; }',
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
outputType: {
|
|
18
|
+
1: [
|
|
19
|
+
{
|
|
20
|
+
type: 'tuple',
|
|
21
|
+
name: 'returnData',
|
|
22
|
+
components: [
|
|
23
|
+
{ type: 'uint256', name: 'veBalance' },
|
|
24
|
+
{
|
|
25
|
+
type: 'tuple[]',
|
|
26
|
+
name: 'votes',
|
|
27
|
+
components: [
|
|
28
|
+
{ type: 'address', name: 'gauge' },
|
|
29
|
+
{ type: 'uint256', name: 'slope' },
|
|
30
|
+
{ type: 'uint256', name: 'power' },
|
|
31
|
+
{ type: 'uint256', name: 'start' },
|
|
32
|
+
{ type: 'uint256', name: 'end' },
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export default batchYbUserVotes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BatchMetaData } from '../types.js'
|
|
2
|
+
|
|
3
|
+
const batchYbVotes: BatchMetaData = {
|
|
4
|
+
bytecode: {
|
|
5
|
+
1: '0x608060405234801561000f575f5ffd5b50604051610af3380380610af38339818101604052810190610031919061058f565b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff1663e93841d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a39190610603565b6fffffffffffffffffffffffffffffffff1690505f8167ffffffffffffffff8111156100d2576100d161062e565b5b60405190808252806020026020018201604052801561010b57816020015b6100f86104f4565b8152602001906001900390816100f05790505b5090505f5f5f90505b838110156103e4575f8573ffffffffffffffffffffffffffffffffffffffff1663b0539187836040518263ffffffff1660e01b81526004016101569190610673565b602060405180830381865afa158015610171573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610195919061068c565b90505f8673ffffffffffffffffffffffffffffffffffffffff16630f467f9889846040518363ffffffff1660e01b81526004016101d39291906106c6565b608060405180830381865afa1580156101ee573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021291906107eb565b90505f62093a8080426102259190610870565b61022f91906108a0565b90505f826040015114806102465750808260600151105b15610253575050506103d7565b5f5f90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83606001510361028e57826020015190506102af565b81836060015161029e91906108e1565b835f01516102ac91906108a0565b90505b5f8973ffffffffffffffffffffffffffffffffffffffff16634e791a3a866040518263ffffffff1660e01b81526004016102e99190610914565b602060405180830381865afa158015610304573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610328919061092d565b90508488878151811061033e5761033d610958565b5b60200260200101515f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508188878151811061038f5761038e610958565b5b60200260200101516020018181525050808887815181106103b3576103b2610958565b5b6020026020010151604001818152505086806103ce90610985565b97505050505050505b8080600101915050610114565b505f8167ffffffffffffffff811115610400576103ff61062e565b5b60405190808252806020026020018201604052801561043957816020015b6104266104f4565b81526020019060019003908161041e5790505b5090505f5f5f90505b858110156104c5575f85828151811061045e5761045d610958565b5b60200260200101516020015111156104b85784818151811061048357610482610958565b5b602002602001015183838151811061049e5761049d610958565b5b602002602001018190525081806104b490610985565b9250505b8080600101915050610442565b505f826040516020016104d89190610ad2565b6040516020818303038152906040529050602081018059038082f35b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b5f604051905090565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61055e82610535565b9050919050565b61056e81610554565b8114610578575f5ffd5b50565b5f8151905061058981610565565b92915050565b5f5f604083850312156105a5576105a4610531565b5b5f6105b28582860161057b565b92505060206105c38582860161057b565b9150509250929050565b5f81600f0b9050919050565b6105e2816105cd565b81146105ec575f5ffd5b50565b5f815190506105fd816105d9565b92915050565b5f6020828403121561061857610617610531565b5b5f610625848285016105ef565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b61066d8161065b565b82525050565b5f6020820190506106865f830184610664565b92915050565b5f602082840312156106a1576106a0610531565b5b5f6106ae8482850161057b565b91505092915050565b6106c081610554565b82525050565b5f6040820190506106d95f8301856106b7565b6106e660208301846106b7565b9392505050565b5f5ffd5b5f601f19601f8301169050919050565b61070a826106f1565b810181811067ffffffffffffffff821117156107295761072861062e565b5b80604052505050565b5f61073b610528565b90506107478282610701565b919050565b6107558161065b565b811461075f575f5ffd5b50565b5f815190506107708161074c565b92915050565b5f6080828403121561078b5761078a6106ed565b5b6107956080610732565b90505f6107a484828501610762565b5f8301525060206107b784828501610762565b60208301525060406107cb84828501610762565b60408301525060606107df84828501610762565b60608301525092915050565b5f60808284031215610800576107ff610531565b5b5f61080d84828501610776565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61087a8261065b565b91506108858361065b565b92508261089557610894610816565b5b828204905092915050565b5f6108aa8261065b565b91506108b58361065b565b92508282026108c38161065b565b915082820484148315176108da576108d9610843565b5b5092915050565b5f6108eb8261065b565b91506108f68361065b565b925082820390508181111561090e5761090d610843565b5b92915050565b5f6020820190506109275f8301846106b7565b92915050565b5f6020828403121561094257610941610531565b5b5f61094f84828501610762565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61098f8261065b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109c1576109c0610843565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6109fe81610554565b82525050565b610a0d8161065b565b82525050565b606082015f820151610a275f8501826109f5565b506020820151610a3a6020850182610a04565b506040820151610a4d6040850182610a04565b50505050565b5f610a5e8383610a13565b60608301905092915050565b5f602082019050919050565b5f610a80826109cc565b610a8a81856109d6565b9350610a95836109e6565b805f5b83811015610ac5578151610aac8882610a53565b9750610ab783610a6a565b925050600181019050610a98565b5085935050505092915050565b5f6020820190508181035f830152610aea8184610a76565b90509291505056fe',
|
|
6
|
+
},
|
|
7
|
+
inputType: {
|
|
8
|
+
1: ['address _gaugeController, address _user'],
|
|
9
|
+
},
|
|
10
|
+
outputTypeHr: {
|
|
11
|
+
1: ['VoteData[] reurnData', 'struct VoteData { address gauge; uint256 userVote; uint256 totalVotes;}'],
|
|
12
|
+
},
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default batchYbVotes
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
////////////////////////////////////////////////////////////////
|
|
2
2
|
/// --- GLOBAL
|
|
3
3
|
///////////////////////////////////////////////////////////////
|
|
4
|
-
export {
|
|
4
|
+
export { getLlamaTokenPrefix, getPricesFromLlama } from './prices.js'
|
|
5
|
+
export { getGeckoTerminalTokenPrefix, getPricesFromGeckoTerminal } from './prices.js'
|
|
6
|
+
export { getPrices, findPrice, type Price } from './prices.js'
|
|
5
7
|
export * from './sdt.js'
|
|
6
8
|
export * from './tokens.js'
|
|
7
9
|
export { rpcGetLastBlockTimetstamp, rpcCall, batchJsonRpc, ethGetTxsReceipts } from './utils.js'
|
|
@@ -101,6 +103,9 @@ export { fetchFxnUserVotes } from './votemarket/fxn/fetchFxnUserVotes.js'
|
|
|
101
103
|
// Pendle
|
|
102
104
|
export { fetchPendleUserVotes } from './votemarket/pendle/fetchPendleUserVotes.js'
|
|
103
105
|
|
|
106
|
+
// YB
|
|
107
|
+
export { fetchYbUserVotes } from './votemarket/yb/fetchYbUserVotes.js'
|
|
108
|
+
|
|
104
109
|
// Campaign data
|
|
105
110
|
export { fetchEpochsVotes } from './votemarket/fetchEpochVotes.js'
|
|
106
111
|
export { fetchClaimableData } from './votemarket/fetchClaimableData.js'
|
|
@@ -117,6 +117,7 @@ export interface RawLockersData {
|
|
|
117
117
|
peg: string
|
|
118
118
|
rewards: any[]
|
|
119
119
|
veBoost?: {
|
|
120
|
+
totalDelegated?: string
|
|
120
121
|
delegated: string
|
|
121
122
|
weeklyRewards: string[]
|
|
122
123
|
}
|
|
@@ -252,6 +253,7 @@ export const parse = async ({ locker, raw, common, prices }: ParseLockers) => {
|
|
|
252
253
|
locker.veBoost && raw.veBoost
|
|
253
254
|
? {
|
|
254
255
|
...locker.veBoost,
|
|
256
|
+
totalDelegated: raw.veBoost.totalDelegated,
|
|
255
257
|
delegated: raw.veBoost.delegated,
|
|
256
258
|
apr: veBoostApr,
|
|
257
259
|
}
|
|
@@ -153,6 +153,8 @@ const balancerLocker = async ({ provider, common, prices }: { provider; common;
|
|
|
153
153
|
*** veBoost
|
|
154
154
|
*********************************************************************************/
|
|
155
155
|
|
|
156
|
+
// Total veBoost delegated
|
|
157
|
+
{ address: veBoost.address, name: 'received_balance', params: [locker.modules.locker] },
|
|
156
158
|
// Total veBoost delegated through delegator
|
|
157
159
|
{ address: veBoost.delegator, name: 'totalSupply' },
|
|
158
160
|
// veBoost 5 last weeks rewards
|
|
@@ -176,6 +178,7 @@ const balancerLocker = async ({ provider, common, prices }: { provider; common;
|
|
|
176
178
|
peg: getRes(res.shift()),
|
|
177
179
|
rewards: rewards.map(() => getRes(res.shift())),
|
|
178
180
|
veBoost: {
|
|
181
|
+
totalDelegated: formatRes(res.shift()),
|
|
179
182
|
delegated: formatRes(res.shift()),
|
|
180
183
|
weeklyRewards: range(0, 5).map(() => getRes(res.shift())),
|
|
181
184
|
},
|
package/src/prices.ts
CHANGED
|
@@ -35,6 +35,8 @@ export const getLlamaTokenPrefix = (chainId = 1): string => {
|
|
|
35
35
|
return 'avax'
|
|
36
36
|
case 59144:
|
|
37
37
|
return 'linea'
|
|
38
|
+
case 42793:
|
|
39
|
+
return 'etherlink'
|
|
38
40
|
default:
|
|
39
41
|
return 'ethereum'
|
|
40
42
|
}
|
|
@@ -105,6 +107,8 @@ export const getGeckoTerminalTokenPrefix = (chainId = 1): string => {
|
|
|
105
107
|
return 'avax'
|
|
106
108
|
case 59144:
|
|
107
109
|
return 'linea'
|
|
110
|
+
case 42793:
|
|
111
|
+
return 'etherlink'
|
|
108
112
|
default:
|
|
109
113
|
return 'eth'
|
|
110
114
|
}
|
|
@@ -4,7 +4,7 @@ import batchClaimableData from '../bytecodes/votemarket/batchClaimableData.js'
|
|
|
4
4
|
import { concatBytecode } from '../index.js'
|
|
5
5
|
import { batchJsonRpc } from '../utils.js'
|
|
6
6
|
|
|
7
|
-
const MAX_VOTES_PER_CHUNK =
|
|
7
|
+
const MAX_VOTES_PER_CHUNK = 25
|
|
8
8
|
const MAX_CAMPAIGNS_PER_CHUNKS = 5
|
|
9
9
|
|
|
10
10
|
const chunkCampaignsWithVoteLimit = (campaigns: number[], userVotes: any[]) => {
|
|
@@ -2,11 +2,13 @@ import { contracts } from '@stake-dao/constants'
|
|
|
2
2
|
import { chunk } from 'lodash-es'
|
|
3
3
|
import { encodeAbiParameters, parseAbiParameters } from 'viem'
|
|
4
4
|
import { mainnet } from 'viem/chains'
|
|
5
|
+
import type { BatchMetaData } from '../bytecodes/types.js'
|
|
5
6
|
import batchPendleVotes from '../bytecodes/votemarket/batchPendleVotes.js'
|
|
6
7
|
import batchVotes from '../bytecodes/votemarket/batchVotes.js'
|
|
8
|
+
import batchYbVotes from '../bytecodes/votemarket/batchYbVotes.js'
|
|
7
9
|
import { STAKE_DAO_API } from '../endpoints.js'
|
|
8
10
|
import { concatBytecode } from '../index.js'
|
|
9
|
-
import { batchJsonRpcWithBlocks
|
|
11
|
+
import { batchJsonRpcWithBlocks } from '../utils.js'
|
|
10
12
|
|
|
11
13
|
type Rpcs = {
|
|
12
14
|
[chainId: number]: string
|
|
@@ -37,9 +39,17 @@ export const fetchEpochsVotes = async (rpc: Rpcs, gaugeController: string, user:
|
|
|
37
39
|
// Merge blocks
|
|
38
40
|
const blocksForEpoch = [...cachedBlocks, ...missingBlocks]
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
:
|
|
42
|
+
let batchVotesProtocol: BatchMetaData = batchVotes
|
|
43
|
+
switch (gaugeController.toLowerCase()) {
|
|
44
|
+
case (contracts.pendleGaugeController?.[1] || '').toLowerCase():
|
|
45
|
+
batchVotesProtocol = batchPendleVotes
|
|
46
|
+
break
|
|
47
|
+
case (contracts.ybGaugeController?.[1] || '').toLowerCase():
|
|
48
|
+
batchVotesProtocol = batchYbVotes
|
|
49
|
+
break
|
|
50
|
+
default:
|
|
51
|
+
batchVotesProtocol = batchVotes
|
|
52
|
+
}
|
|
43
53
|
|
|
44
54
|
const inputData = encodeAbiParameters(parseAbiParameters(batchVotesProtocol.inputType[mainnet.id]!) as any, [
|
|
45
55
|
gaugeController,
|
|
@@ -20,12 +20,18 @@ export const GaugeControllerConstants = {
|
|
|
20
20
|
lastUserVote: 1000000010,
|
|
21
21
|
voteUserSlope: 1000000008,
|
|
22
22
|
},
|
|
23
|
+
yb: {
|
|
24
|
+
pointWeights: 1000000006,
|
|
25
|
+
lastUserVote: 1000000005,
|
|
26
|
+
voteUserSlope: 1000000003,
|
|
27
|
+
},
|
|
23
28
|
},
|
|
24
29
|
GAUGE_CONTROLLER: {
|
|
25
30
|
curve: '0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB',
|
|
26
31
|
balancer: '0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD',
|
|
27
32
|
frax: '0x3669C421b77340B2979d1A00a792CC2ee0FcE737',
|
|
28
33
|
fxn: '0xe60eB8098B34eD775ac44B1ddE864e098C6d7f37',
|
|
34
|
+
yb: '0x1Be14811A3a06F6aF4fA64310a636e1Df04c1c21',
|
|
29
35
|
},
|
|
30
36
|
}
|
|
31
37
|
|
|
@@ -20,6 +20,13 @@ function getGaugeTimeStorageSlot(gauge: `0x${string}`, time: bigint, baseSlot: n
|
|
|
20
20
|
return BigInt(finalSlot)
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
function getGaugeTimeStorageSlotYb(gauge: `0x${string}`, _: bigint, baseSlot: number): bigint {
|
|
24
|
+
const gaugeEncoded = keccak256(
|
|
25
|
+
encodeAbiParameters([{ type: 'uint256' }, { type: 'address' }], [BigInt(baseSlot), gauge]),
|
|
26
|
+
)
|
|
27
|
+
return BigInt(gaugeEncoded)
|
|
28
|
+
}
|
|
29
|
+
|
|
23
30
|
// Function to get storage slot for Curve protocol (pre-Vyper 0.3)
|
|
24
31
|
function getGaugeTimeStorageSlotPreVyper03(gauge: `0x${string}`, time: bigint, baseSlot: number): bigint {
|
|
25
32
|
const intermediateHash = _encodeGaugeTime(gauge, time, baseSlot)
|
|
@@ -44,6 +51,7 @@ export async function generateGaugeProof(
|
|
|
44
51
|
|
|
45
52
|
const positionFunctions: Record<string, any> = {
|
|
46
53
|
curve: getGaugeTimeStorageSlotPreVyper03,
|
|
54
|
+
yb: getGaugeTimeStorageSlotYb,
|
|
47
55
|
default: getGaugeTimeStorageSlot,
|
|
48
56
|
}
|
|
49
57
|
|
|
@@ -53,10 +53,23 @@ export async function generateUserProof(
|
|
|
53
53
|
const getPosition = positionFunctions[protocol] || positionFunctions.default
|
|
54
54
|
const voteUserSlopeSlot = getPosition(user, gaugeAddress, voteUserSlopeBaseSlot)
|
|
55
55
|
|
|
56
|
+
let index_additionnal_slots = [2n]
|
|
57
|
+
switch (protocol.toLowerCase()) {
|
|
58
|
+
case 'yb':
|
|
59
|
+
index_additionnal_slots = [1n, 3n]
|
|
60
|
+
break
|
|
61
|
+
default:
|
|
62
|
+
index_additionnal_slots = [2n]
|
|
63
|
+
break
|
|
64
|
+
}
|
|
65
|
+
|
|
56
66
|
const voteUserSlopeSlope = voteUserSlopeSlot
|
|
57
|
-
const voteUserSlopeEnd = voteUserSlopeSlot + 2n
|
|
58
67
|
|
|
59
|
-
const slots = [toHex(lastUserVoteSlot), toHex(voteUserSlopeSlope)
|
|
68
|
+
const slots = [toHex(lastUserVoteSlot), toHex(voteUserSlopeSlope)]
|
|
69
|
+
|
|
70
|
+
for (const index_additionnal_slot of index_additionnal_slots) {
|
|
71
|
+
slots.push(toHex(voteUserSlopeSlot + index_additionnal_slot))
|
|
72
|
+
}
|
|
60
73
|
|
|
61
74
|
const proof = await publicClient.getProof({
|
|
62
75
|
address: GaugeControllerConstants.GAUGE_CONTROLLER[protocol] as `0x${string}`,
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { contracts } from '@stake-dao/constants'
|
|
2
|
+
import { encodeAbiParameters, formatUnits, parseAbiParameters, zeroAddress } from 'viem'
|
|
3
|
+
import { mainnet } from 'viem/chains'
|
|
4
|
+
import batchYbUserVotes from '../../bytecodes/votemarket/batchYbUserVotes.js'
|
|
5
|
+
import { concatBytecode } from '../../index.js'
|
|
6
|
+
import { batchJsonRpc, equalTlc } from '../../utils.js'
|
|
7
|
+
|
|
8
|
+
export type Vote = {
|
|
9
|
+
gauge: string
|
|
10
|
+
slope: string
|
|
11
|
+
relativeWeight: number
|
|
12
|
+
weight: number
|
|
13
|
+
start: number
|
|
14
|
+
end: number
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type GaugesUserData = { veBalance: string; unusedVeBalance: string; unusedRelativeWeight: number; votes: Vote[] }
|
|
18
|
+
|
|
19
|
+
export const fetchYbUserVotes = async (rpc: string, user: string): Promise<GaugesUserData> => {
|
|
20
|
+
const calls = [
|
|
21
|
+
concatBytecode(
|
|
22
|
+
batchYbUserVotes.bytecode[mainnet.id]!,
|
|
23
|
+
encodeAbiParameters(parseAbiParameters(batchYbUserVotes.inputType[mainnet.id]!) as any, [
|
|
24
|
+
user,
|
|
25
|
+
contracts.ybGaugeController![1]!,
|
|
26
|
+
contracts.veYB![1]!,
|
|
27
|
+
]),
|
|
28
|
+
),
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
const rawVotes = await batchJsonRpc({
|
|
32
|
+
rpc,
|
|
33
|
+
calls,
|
|
34
|
+
outputTypeAbi: batchYbUserVotes.outputType![mainnet.id],
|
|
35
|
+
parse: false,
|
|
36
|
+
callsKey: `votemarket/yb/fetchYbUserVotes.ts: rawGauges - chainId ${mainnet.id} - rpc ${rpc}`,
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
const veBalance = rawVotes[0].veBalance
|
|
40
|
+
|
|
41
|
+
const votes = rawVotes[0].votes
|
|
42
|
+
.filter((rv) => !equalTlc(rv.gauge, zeroAddress))
|
|
43
|
+
.map((v) => ({
|
|
44
|
+
gauge: v.gauge,
|
|
45
|
+
slope: formatUnits(v.slope, 0),
|
|
46
|
+
relativeWeight: Number(v.power) / 100,
|
|
47
|
+
weight: formatUnits((veBalance * BigInt(v.power)) / BigInt(10000), 18),
|
|
48
|
+
start: Number(v.start),
|
|
49
|
+
end: Number(v.end),
|
|
50
|
+
}))
|
|
51
|
+
|
|
52
|
+
const unusedRelativeWeight = 10000 - votes.reduce((total, x) => total + x.relativeWeight * 100, 0)
|
|
53
|
+
const unusedVeBalance = (veBalance * BigInt(unusedRelativeWeight)) / BigInt(10000)
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
veBalance: formatUnits(veBalance, 18),
|
|
57
|
+
unusedVeBalance: formatUnits(unusedVeBalance, 18),
|
|
58
|
+
unusedRelativeWeight: unusedRelativeWeight / 100,
|
|
59
|
+
votes,
|
|
60
|
+
}
|
|
61
|
+
}
|