Compare commits

..

6 commits

Author SHA1 Message Date
a3eb27ea4f Update gateways to release version 2024-11-20 17:01:37 +03:00
160c0313dd Update contracts up to v0.21.0-rc.3 2024-11-20 17:01:15 +03:00
ce00bcee2d Do not use build-arg for image-aio-local
There is not arguments in Dockerfile.local

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-11-08 17:35:17 +03:00
fe05390238 [#48] Add S3 Lifecycler
Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
2024-11-08 17:33:12 +03:00
13bec4ff0d Enable CORS in HTTP Gateway 2024-11-08 17:27:56 +03:00
a07ff75522 Update to nightly component versions
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-11-08 17:27:55 +03:00
22 changed files with 103 additions and 23 deletions

10
.env
View file

@ -1,8 +1,10 @@
FROSTFS_HUB_IMAGE=truecloudlab/frostfs
FROSTFS_FORGEJO_IMAGE=git.frostfs.info/truecloudlab/frostfs
AIO_IMAGE=truecloudlab/frostfs-aio
AIO_VERSION=1.6.5
AIO_VERSION=1.7.0-nightly.3
FROSTFS_CORE_TAG=0.42.15
FROSTFS_HTTP_GATE_TAG=0.30.2
FROSTFS_S3_GATE_TAG=0.30.7
FROSTFS_CORE_TAG=0.44.0-rc.7
FROSTFS_HTTP_GATE_TAG=0.31.0
FROSTFS_S3_GATE_TAG=0.31.0
FROSTFS_S3_LIFECYCLER_TAG=0.1.3
NEOGO_TAG=0.106.0

View file

@ -1,18 +1,21 @@
ARG FROSTFS_HUB_IMAGE=truecloudlab/frostfs
ARG FROSTFS_FORGEJO_IMAGE=git.frostfs.info/truecloudlab/frostfs
ARG NEOGO_HUB_IMAGE=nspccdev/neo-go
ARG FROSTFS_CORE_TAG=dev
ARG FROSTFS_HTTP_GATE_TAG=dev
ARG FROSTFS_S3_GATE_TAG=dev
ARG FROSTFS_S3_LIFECYCLER_TAG=dev
ARG NEOGO_TAG=dev
FROM ${NEOGO_HUB_IMAGE}:${NEOGO_TAG} AS neo-go
FROM ${FROSTFS_HUB_IMAGE}-adm:${FROSTFS_CORE_TAG} AS frostfs-adm
FROM ${FROSTFS_HUB_IMAGE}-cli:${FROSTFS_CORE_TAG} AS frostfs-cli
FROM ${FROSTFS_HUB_IMAGE}-ir:${FROSTFS_CORE_TAG} AS frostfs-ir
FROM ${FROSTFS_HUB_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
FROM ${FROSTFS_FORGEJO_IMAGE}-adm:${FROSTFS_CORE_TAG} AS frostfs-adm
FROM ${FROSTFS_FORGEJO_IMAGE}-cli:${FROSTFS_CORE_TAG} AS frostfs-cli
FROM ${FROSTFS_FORGEJO_IMAGE}-ir:${FROSTFS_CORE_TAG} AS frostfs-ir
FROM ${FROSTFS_FORGEJO_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_S3_GATE_TAG} AS frostfs-s3-gw
FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_HTTP_GATE_TAG} AS frostfs-http-gw
FROM ${FROSTFS_HUB_IMAGE}-s3-lifecycler:${FROSTFS_S3_LIFECYCLER_TAG} AS frostfs-s3-lifecycler
# Executable image
FROM alpine AS frostfs-aio
@ -34,6 +37,7 @@ COPY --from=frostfs-storage /bin/frostfs-node /usr/bin/frostfs-node
COPY --from=frostfs-s3-gw /bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
COPY --from=frostfs-s3-gw /bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
COPY --from=frostfs-http-gw /bin/frostfs-http-gw /usr/bin/frostfs-http-gw
COPY --from=frostfs-s3-lifecycler /bin/frostfs-s3-lifecycler /usr/bin/frostfs-s3-lifecycler
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
@ -52,6 +56,7 @@ COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
COPY ./s3-lifecycler/s3-lc-config.yaml /config/s3-lc-config.yaml
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
COPY ./sn/wallet.json /config/wallet-sn.json
COPY ./sn/config.yaml /config/config-sn.yaml

View file

@ -1,17 +1,20 @@
ARG FROSTFS_HUB_IMAGE=truecloudlab/frostfs
ARG FROSTFS_FORGEJO_IMAGE=git.frostfs.info/truecloudlab/frostfs
ARG NEOGO_HUB_IMAGE=nspccdev/neo-go
ARG FROSTFS_CORE_TAG
ARG FROSTFS_HTTP_GATE_TAG
ARG FROSTFS_S3_GATE_TAG
ARG NEOGO_TAG
ARG FROSTFS_CORE_TAG=dev
ARG FROSTFS_HTTP_GATE_TAG=dev
ARG FROSTFS_S3_GATE_TAG=dev
ARG FROSTFS_S3_LIFECYCLER_TAG=dev
ARG NEOGO_TAG=dev
FROM ${NEOGO_HUB_IMAGE}:${NEOGO_TAG} AS neo-go
FROM ${FROSTFS_HUB_IMAGE}-adm:${FROSTFS_CORE_TAG} AS frostfs-adm
FROM ${FROSTFS_HUB_IMAGE}-cli:${FROSTFS_CORE_TAG} AS frostfs-cli
FROM ${FROSTFS_HUB_IMAGE}-ir:${FROSTFS_CORE_TAG} AS frostfs-ir
FROM ${FROSTFS_HUB_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
FROM ${FROSTFS_FORGEJO_IMAGE}-adm:${FROSTFS_CORE_TAG} AS frostfs-adm
FROM ${FROSTFS_FORGEJO_IMAGE}-cli:${FROSTFS_CORE_TAG} AS frostfs-cli
FROM ${FROSTFS_FORGEJO_IMAGE}-ir:${FROSTFS_CORE_TAG} AS frostfs-ir
FROM ${FROSTFS_FORGEJO_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_S3_GATE_TAG} AS frostfs-s3-gw
FROM ${FROSTFS_HUB_IMAGE}-s3-lifecycler:${FROSTFS_S3_LIFECYCLER_TAG} AS frostfs-s3-lifecycler
FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_HTTP_GATE_TAG} AS frostfs-http-gw
# Executable image
@ -34,6 +37,7 @@ COPY --from=frostfs-storage /bin/frostfs-node /usr/bin/frostfs-node
COPY --from=frostfs-s3-gw /bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
COPY --from=frostfs-s3-gw /bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
COPY --from=frostfs-http-gw /bin/frostfs-http-gw /usr/bin/frostfs-http-gw
COPY --from=frostfs-s3-lifecycler /bin/frostfs-s3-lifecycler /usr/bin/frostfs-s3-lifecycler
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
@ -52,6 +56,7 @@ COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
COPY ./s3-lifecycler/s3-lc-config.yaml /config/s3-lc-config.yaml
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
COPY ./sn/wallet.json /config/wallet-sn.json
COPY ./sn/config.yaml /config/config-sn.yaml

View file

@ -19,6 +19,7 @@ COPY ./bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
COPY ./bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
COPY ./bin/frostfs-http-gw /usr/bin/frostfs-http-gw
COPY ./bin/issue-creds.sh /usr/bin/issue-creds.sh
COPY ./bin/frostfs-s3-lifecycler /usr/bin/frostfs-s3-lifecycler
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
@ -37,6 +38,7 @@ COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
COPY ./s3-lifecycler/s3-lc-config.yaml /config/s3-lc-config.yaml
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
COPY ./sn/wallet.json /config/wallet-sn.json
COPY ./sn/config.yaml /config/config-sn.yaml

View file

@ -34,6 +34,7 @@ image-aio:
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
--build-arg FROSTFS_S3_LIFECYCLER_TAG=$(FROSTFS_S3_LIFECYCLER_TAG) \
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
-t $(AIO_IMAGE):$(AIO_VERSION) .
@ -43,10 +44,6 @@ image-aio-local:
@docker build \
--rm \
-f Dockerfile.local \
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
-t $(AIO_IMAGE):$(AIO_VERSION) .
# Build aio Docker image with custom binaries
@ -58,6 +55,7 @@ image-aio-custom:
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
--build-arg FROSTFS_S3_LIFECYCLER_TAG=$(FROSTFS_S3_LIFECYCLER_TAG) \
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
-t $(AIO_IMAGE):$(AIO_VERSION) .

View file

@ -11,6 +11,7 @@ files for:
- frostfs-s3-gw
- frostfs-s3-authmate
- frostfs-http-gw
- frostfs-s3-lifecycler
Entrypoint script starts blockchain, inner ring, storage, s3, and http gateway
services and configures it in the initial start.
@ -117,6 +118,7 @@ Put all the needed pre-built binaries to the `frostfs-aio/bin/`:
- frostfs-s3-gw
- frostfs-s3-authmate
- frostfs-http-gw
- frostfs-s3-lifecycler
Make sure they all have the `x` right for the execution enabled.
Build frostfs-aio image using pre-built local binaries for all the services.

View file

@ -66,6 +66,7 @@ runServices() {
done
/usr/bin/frostfs-s3-gw --config /config/s3-gw-config.yaml |& tee -a ${LOG_DIR}/frostfs-s3-gw &
/usr/bin/frostfs-s3-lifecycler --config /config/s3-lc-config.yaml |& tee -a ${LOG_DIR}/frostfs-s3-lifecycler &
/usr/bin/frostfs-http-gw --config /config/http-gw-config.yaml |& tee -a ${LOG_DIR}/frostfs-http-gw &
}

View file

@ -34,3 +34,7 @@ peers:
weight: 1
rpc_endpoint: http://localhost:30333
cors:
allow_origin: "*"
allow_headers: ["*"]

View file

@ -0,0 +1,61 @@
# Wallet address, path to the wallet must be set as cli parameter or environment variable
wallet:
path: /wallets/wallet1.json # Path to wallet
address: NhCHDEtGgSph1v6PmjFC1gtzJWNKtNSadk # Account address. If omitted default one will be used.
passphrase: "" # Passphrase to decrypt wallet. If you're using a wallet without a password, place '' here.
logger:
level: debug # Log level.
destination: stdout # Logging destination.
sampling:
enabled: false
initial: 100
thereafter: 100
interval: 1s
morph:
rpc_endpoint:
- address: ws://localhost:30333/ws
priority: 1
reconnect_clients_interval: 30s
dial_timeout: 5s
contract:
netmap: netmap.frostfs
frostfsid: frostfsid.frostfs
container: container.frostfs
credential:
use: wallets
source:
wallets:
- path: /wallets/wallet1.json
address: NhCHDEtGgSph1v6PmjFC1gtzJWNKtNSadk
passphrase: ""
- path: /wallets/wallet2.json
address: NivQRezLwGP8xFPr87DD5XaYGUKK3BMsTa
passphrase: ""
- path: /wallets/wallet3.json
address: NR8qvrREk1eCeQJce9zBaDyPE3PHGZfT6t
passphrase: ""
- path: /config/user-wallet.json
address: NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw
passphrase: ""
lifecycle:
job_fetcher_buffer: 1000
executor_pool_size: 100
frostfs:
stream_timeout: 10s
connect_timeout: 10s
healthcheck_timeout: 15s
rebalance_interval: 60s
pool_error_threshold: 100
tree_pool_max_attempts: 4
peers:
0:
address: localhost:8080
priority: 1
weight: 1

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View file

@ -1 +1 @@
{"name":"NameService","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":32,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addRecord","offset":2681,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":609,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"decimals","offset":520,"parameters":[],"returntype":"Integer","safe":true},{"name":"deleteRecords","offset":2816,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Void","safe":false},{"name":"getAllRecords","offset":2972,"parameters":[{"name":"name","type":"String"}],"returntype":"InteropInterface","safe":false},{"name":"getPrice","offset":1013,"parameters":[],"returntype":"Integer","safe":true},{"name":"getRecords","offset":2773,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"isAvailable","offset":1047,"parameters":[{"name":"name","type":"String"}],"returntype":"Boolean","safe":true},{"name":"ownerOf","offset":542,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Hash160","safe":true},{"name":"properties","offset":564,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Map","safe":true},{"name":"register","offset":1386,"parameters":[{"name":"name","type":"String"},{"name":"owner","type":"Hash160"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Boolean","safe":false},{"name":"renew","offset":2142,"parameters":[{"name":"name","type":"String"}],"returntype":"Integer","safe":false},{"name":"resolve","offset":2950,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"roots","offset":907,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"setAdmin","offset":2353,"parameters":[{"name":"name","type":"String"},{"name":"admin","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"setPrice","offset":935,"parameters":[{"name":"price","type":"Integer"}],"returntype":"Void","safe":false},{"name":"setRecord","offset":2487,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"id","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"symbol","offset":514,"parameters":[],"returntype":"String","safe":true},{"name":"tokens","offset":685,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"tokensOf","offset":714,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"InteropInterface","safe":true},{"name":"totalSupply","offset":526,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":776,"parameters":[{"name":"to","type":"Hash160"},{"name":"tokenID","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"update","offset":455,"parameters":[{"name":"nef","type":"ByteArray"},{"name":"manifest","type":"String"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"updateSOA","offset":2263,"parameters":[{"name":"name","type":"String"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Void","safe":false},{"name":"version","offset":522,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"tokenId","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"0xfffdc93764dbaddd97c48f252a53ea4643faa3fd","methods":["update"]},{"contract":"*","methods":["onNEP11Payment"]}],"supportedstandards":["NEP-11"],"trusts":[],"extra":null}
{"name":"NameService","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":32,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addRecord","offset":3090,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":828,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"decimals","offset":739,"parameters":[],"returntype":"Integer","safe":true},{"name":"deleteDomain","offset":3726,"parameters":[{"name":"name","type":"String"}],"returntype":"Void","safe":false},{"name":"deleteRecord","offset":3469,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Boolean","safe":false},{"name":"deleteRecords","offset":3225,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Void","safe":false},{"name":"getAllRecords","offset":4401,"parameters":[{"name":"name","type":"String"}],"returntype":"InteropInterface","safe":false},{"name":"getPrice","offset":1232,"parameters":[],"returntype":"Integer","safe":true},{"name":"getRecords","offset":3182,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"isAvailable","offset":1266,"parameters":[{"name":"name","type":"String"}],"returntype":"Boolean","safe":true},{"name":"ownerOf","offset":761,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Hash160","safe":true},{"name":"properties","offset":783,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Map","safe":true},{"name":"register","offset":1861,"parameters":[{"name":"name","type":"String"},{"name":"owner","type":"Hash160"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Boolean","safe":false},{"name":"renew","offset":2665,"parameters":[{"name":"name","type":"String"}],"returntype":"Integer","safe":false},{"name":"resolve","offset":4379,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"roots","offset":1126,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"setAdmin","offset":2800,"parameters":[{"name":"name","type":"String"},{"name":"admin","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"setPrice","offset":1154,"parameters":[{"name":"price","type":"Integer"}],"returntype":"Void","safe":false},{"name":"setRecord","offset":2896,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"id","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"symbol","offset":733,"parameters":[],"returntype":"String","safe":true},{"name":"tokens","offset":904,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"tokensOf","offset":933,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"InteropInterface","safe":true},{"name":"totalSupply","offset":745,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":995,"parameters":[{"name":"to","type":"Hash160"},{"name":"tokenID","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"update","offset":674,"parameters":[{"name":"nef","type":"ByteArray"},{"name":"manifest","type":"String"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"updateSOA","offset":2748,"parameters":[{"name":"name","type":"String"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Void","safe":false},{"name":"version","offset":741,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"RegisterDomain","parameters":[{"name":"name","type":"String"}]},{"name":"AddRecord","parameters":[{"name":"name","type":"String"},{"name":"type","type":"Integer"}]},{"name":"DeleteRecord","parameters":[{"name":"name","type":"String"},{"name":"type","type":"Integer"}]},{"name":"DeleteRecords","parameters":[{"name":"name","type":"String"},{"name":"type","type":"Integer"}]},{"name":"DeleteDomain","parameters":[{"name":"name","type":"String"}]},{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"tokenId","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"0xfffdc93764dbaddd97c48f252a53ea4643faa3fd","methods":["update"]},{"contract":"*","methods":["onNEP11Payment"]}],"supportedstandards":["NEP-11"],"trusts":[],"extra":null}

Binary file not shown.

View file

@ -1 +1 @@
{"name":"APE","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addChain","offset":968,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"},{"name":"chain","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"getAdmin","offset":731,"parameters":[],"returntype":"Hash160","safe":true},{"name":"getChain","offset":1020,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"iteratorChainsByPrefix","offset":1548,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"prefix","type":"ByteArray"}],"returntype":"InteropInterface","safe":true},{"name":"listChains","offset":1401,"parameters":[{"name":"namespace","type":"String"},{"name":"container","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listChainsByPrefix","offset":1457,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"prefix","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listTargets","offset":1595,"parameters":[{"name":"entity","type":"Integer"}],"returntype":"InteropInterface","safe":true},{"name":"removeChain","offset":1107,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"removeChainsByPrefix","offset":1236,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"setAdmin","offset":698,"parameters":[{"name":"addr","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"update","offset":605,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":601,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null}
{"name":"APE","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addChain","offset":972,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"},{"name":"chain","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"getAdmin","offset":731,"parameters":[],"returntype":"Hash160","safe":true},{"name":"getChain","offset":1024,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"iteratorChainsByPrefix","offset":1552,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"prefix","type":"ByteArray"}],"returntype":"InteropInterface","safe":true},{"name":"listChainNames","offset":1635,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"}],"returntype":"InteropInterface","safe":true},{"name":"listChains","offset":1405,"parameters":[{"name":"namespace","type":"String"},{"name":"container","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listChainsByPrefix","offset":1461,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"prefix","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listTargets","offset":1599,"parameters":[{"name":"entity","type":"Integer"}],"returntype":"InteropInterface","safe":true},{"name":"removeChain","offset":1111,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"removeChainsByPrefix","offset":1240,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"setAdmin","offset":698,"parameters":[{"name":"addr","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"update","offset":605,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":601,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null}

Binary file not shown.

Binary file not shown.