GSR Smart Contract ABI
Updated 2022-09-12
/** Place a piece according to a publisher. */
function place(
EncodedAssetId calldata encodedAssetId,
Geohash calldata geohash,
TimeRange calldata timeRange
)
/** Place a piece according to a publisher, and set the scene URI, in one transaction. */
function placeWithScene(
EncodedAssetId calldata encodedAssetId,
Geohash calldata geohash,
TimeRange calldata timeRange,
string calldata sceneUri
)
/** Place an asset inside another asset, making it available for use in scenes. */
function placeInside(
EncodedAssetId calldata encodedAssetId,
bytes32 parentAssetId,
TimeRange calldata timeRange
)
/** Remove an asset from the GSR */
function remove(EncodedAssetId calldata encodedAssetId)
/// Just update a sceneUri without changing the placement.
function updateSceneUri(
EncodedAssetId calldata encodedAssetId,
string memory sceneUri
)
/** Get the current location of an asset. */
function placeOf(bytes32 assetId, address publisher)
external
view
returns (uint64 geohash, uint8 bitPrecision)
/** Get the Scene URI metadata of a published asset. */
function sceneURI(bytes32 assetId, address publisher)
external
view
returns (string memory)
/// Check if an asset is within a bounding box using a geohash prefix.
function isWithin(
Geohash calldata boundingGeohash,
bytes32 assetId,
address publisher
) external view returns (bool)
/// Check if an asset is currently placed within another asset.against
function isInsideAsset(
bytes32 assetId,
bytes32 parentAssetId,
address publisher
) external view returns (bool)
/// The GsrPlacement event for off-chain querying
event GsrPlacement(
// Indexed fields
bytes32 indexed assetId,
bytes32 indexed parentAssetId,
bytes32 indexed collectionIdHash,
// AssetId Details
EncodedAssetId fullAssetId,
// Placement data
address publisher,
bool published,
Geohash geohash,
string sceneUri,
uint256 placedAt,
TimeRange timeRange
);
The full specification for the external functions to place and query assets in the GSR:]
/** Place a piece according to a publisher. */
function place(
EncodedAssetId calldata encodedAssetId,
Geohash calldata geohash,
TimeRange calldata timeRange
)
/** Place a piece according to a publisher, and set the scene URI, in one transaction. */
function placeWithScene(
EncodedAssetId calldata encodedAssetId,
Geohash calldata geohash,
TimeRange calldata timeRange,
string calldata sceneUri
)
/** Place an asset inside another asset, making it available for use in scenes. */
function placeInside(
EncodedAssetId calldata encodedAssetId,
bytes32 parentAssetId,
TimeRange calldata timeRange
)
/** Remove an asset from the GSR */
function remove(EncodedAssetId calldata encodedAssetId)
/// Just update a sceneUri without changing the placement.
function updateSceneUri(
EncodedAssetId calldata encodedAssetId,
string memory sceneUri
)
/** Get the current location of an asset. */
function placeOf(bytes32 assetId, address publisher)
external
view
returns (uint64 geohash, uint8 bitPrecision)
/** Get the Scene URI metadata of a published asset. */
function sceneURI(bytes32 assetId, address publisher)
external
view
returns (string memory)
/// Check if an asset is within a bounding box using a geohash prefix.
function isWithin(
Geohash calldata boundingGeohash,
bytes32 assetId,
address publisher
) external view returns (bool)
/// Check if an asset is currently placed within another asset.against
function isInsideAsset(
bytes32 assetId,
bytes32 parentAssetId,
address publisher
) external view returns (bool)
The GsrPlacement event for off-chain querying
event GsrPlacement(
// Indexed fields
bytes32 indexed assetId,
bytes32 indexed parentAssetId,
bytes32 indexed collectionIdHash,
// AssetId Details
EncodedAssetId fullAssetId,
// Placement data
address publisher,
bool published,
Geohash geohash,
string sceneUri,
uint256 placedAt,
TimeRange timeRange
);
Last updated